program tip

Java는 클래스와 동일합니다.

radiobox 2020. 11. 2. 07:49
반응형

Java는 클래스와 동일합니다. == .equals와 동일


대신 변수 ==에 대해 수행 하고 동일한 결과를 기대할 수 있습니까?Classequals

예를 들면 :

Class clazz = xyz;

사례 A :

if(clazz == Date.class) {
// do something
}

사례 B :

if(Date.class.equals(clazz)) {
// do something
}

사례 A와 사례 B는 기능적으로 동일합니까?


클래스는 최종 클래스이므로 equals ()를 재정의 할 수 없습니다. equals () 메소드는 다음을 읽는 Object에서 상속됩니다.

public boolean equals(Object obj) {
    return (this == obj);
}

예, 그들은 클래스 또는 재정의하지 않는 모든 유형에 대해 동일합니다. equals(Object)

두 번째 질문에 답하기 위해 각 ClassLoader는 클래스를 한 번만로드 할 수 있으며 주어진 정규화 된 이름에 대해 항상 동일한 클래스를 제공합니다.


예.

Class 클래스 설명을 살펴보고에서 상속 equals되며 Object메서드가 다음과 같이 읽습니다.

"Object 클래스의 equals 메소드는 객체에 대해 가능한 가장 구별되는 등가 관계를 구현합니다. 즉, null이 아닌 참조 값 x 및 y에 대해이 메소드는 x와 y가 동일한 객체를 참조하는 경우에만 true를 반환합니다 (x = = y는 true 값을 가짐). "


예, equals(...)클래스 의 코드 는 다음과 같습니다.

public boolean equals(Object obj) {
    return (this == obj);
}

참고 URL : https://stackoverflow.com/questions/7322469/java-equals-for-a-class-is-same-as-equals

반응형