암시 적 변환이 아니라 변수 유형이 일치하지 않을 때 Java 컴파일러가 오류를 발생하도록하는 방법이 있습니까? 예를 들면 : 암시 적으로 변환됩니다 자바 위의 예에서Java 컴파일러가 명시 적 유형 변환을 수행하는 방법
int intValue=3;
double dblValue = 2.2;
double result;
result = 1/intValue*(intValue-dblValue);
(1 /있는 intValue) 값으로 정수를 0으로
내가 원하는 것은 오류 변수 유형 돈을 발행하는 컴파일러입니다 암시 적으로 변환하는 것이 아니라 일치시킵니다. 미리
EDIT1에
감사 : 위의 방정식은 단순한 예이다. 나는 아래의 솔루션 중 하나를 사용하여이 문제를 해결하는 방법을 알고 :
result = 1.0/intValue*(intValue-dblValue);
또는
result = 1/(double)intValue*((double)intValue-dblValue);
하지만 난 후 무엇을하지 이잖아. 감사합니다
편집 2 : 나는 타입 변환이 아닌 타입 변환을 언급하고있었습니다. 명시 적 형식 변환을 적용하기 위해 컴파일러를 찾고 있습니다.
나는 이런 식으로 뭔가를 찾고 있어요 : https://support.microsoft.com/en-us/help/311329/option-explicit-and-option-strict-in-visual-basic-.net-and-in-visual-basic
이것은 완벽한 Java 코드이므로이 경우 오류가 발생하지 않아도됩니다. –
"암시 적으로 값 0 인 정수에 캐스트 (1/intValue)를 입력합니다."- 무엇? 거기에 관련된 주조품이 없습니다. 그것은 double을 생성하지 않고 int 나 그와 같은 것으로 변환합니다. 나누기 연산자는 int를 직접 생성합니다. – user2357112
아니요. Java 규칙이 이미 정의되어 있으며 언급 한 구문이 오류가 아닙니다. 그것은 심지어 형식 변환이 아닙니다. int와 double을 포함하는 경우 암시적인 변환이며 int 만 포함하는 경우에는 암시 적 변환이 아닙니다. 네가 묻고있는 것이 불분명하다. – EJP