실험적으로 Java 정적 메소드가 정적 컨텍스트에서도 범위에있는 동일한 명명 된 메소드를 대체한다는 것을 발견했습니다. 매개 변수 오버로딩을 허용하지 않고도. 마찬가지로Java static imports
import java.util.Arrays;
import static java.util.Arrays.toString;
public class A {
public static void bar(Object... args) {
Arrays.toString(args);
toString(args); //toString() in java.lang.Object cannot be applied to (java.lang.Object[])
}
}
나는 이것에 관해서 아무것도 발견 할 수 없다. 이거 버그 야? 그렇다면 언어를 구현할 이유가 있습니까?
UPD : Java 6에서는이 예제를 컴파일하지 않습니다. 질문은 - 왜?
그것의 super의 Object의'toString()' –
IMHO를 언급 한 것처럼 보이지만 전체 정적 임포트 기능은 네임 스페이스를 오염시키고 코드 가독성을 떨어 뜨리는 나쁜 개념입니다. 게으르지 마십시오. 정적 함수의 클래스/인터페이스를 입력하는 것이 그리 어렵지 않습니다. IDE를위한 IDE가 있습니다. 정적 가져 오기를 사용하지 마십시오. – buc
@ Jigar Joshi, 이음새가 너무 심해요. 그러나 나는 아무것도 찾을 수 없습니다. 그리고 더, 우리는 정적 인 컨텍스트로부터'Object.toString'를 호출 할 수 없기 때문에이 동작에 어떤 로직도 보이지 않습니다. –