다음 줄로 오류를 격리했습니다 : string.getClass() == jojo.getClass() 이 줄은 두 개의 Class 객체를 생성해서는 안되며 두 참조) 같은 개체를 가리 킵니다? false 값을 반환하는 대신 코드가 실행되지 않습니다.== 연산자로 컴파일 오류가 발생했습니다.
public class Tester
{
public static void main(String[] args)
{
OreoJar jojo = new OreoJar(0);
OreoJar momo = new OreoJar(1);
String string = "Hello";
if (momo.getClass() == jojo.getClass())
{
System.out.println("Momo and jojo are of the same class");
}
if (string.getClass() == jojo.getClass())
{
System.out.println("String and jojo are of the same class");
}
}
}
public class OreoJar
{
int oreos;
public OreoJar(int oreos)
{
this.oreos = oreos;
}
public void count()
{
System.out.println(oreos + " oreos in this jar!");
}
}
이 댓글이 가지 숨겨져 내가 생각하는 그것은 초보자에게 가장 적합한 이후
이 JLS에 -According (예 : 나 자신으로) 언급 할 가치 "그것은 컴파일 타임 오류입니다 형 변환에 의해 피연산자의 타입을 다른 타입의 타입으로 변환하는 것이 불가능하다면 타입 A와 타입 B의 두 가지 참조가 비교 될 수있다. 오직 A가 B로 캐스트 될 수 있거나 B가 B가 될 수있는 경우에만 비교 될 수있다. A에 던지십시오 - Patricia Shanahan
당신이 * 컴파일 오류가 발생하는 경우 * (그것은 이상한 너무 소리)와이 필요 우리의 도움, 그러면 상식은 당신이 여기에 오류를 게시해야한다고 말합니다. –
오류가 무엇인지 알려주시겠습니까? – OldProgrammer
'public class OreoJar'를'private class OreoJar'로 만들고 다시 시도 하시겠습니까? – Marcus