2013-11-01 5 views
0

Почему это сравнение с использованием .getClass(). Equals() не работает?Java getClass(). Equals() Сравнение

System.out.println("worldX: " + worldX.get(j).getClass()); 
System.out.println("-block: " + block.getClass()); 
System.out.println("Comparison: " + worldX.get(j). 
     getClass().equals(bug.getClass())); 

Она выводит следующее:

worldX: class aWorld.ABlock 
-block: class aWorld.ABlock 
Comparison: false 

Edit: Сравнение различных классов, чем те, которые я имел в виду, чтобы сравнить.

+3

Is block.getClass() такой же, как bug.getClass()? –

+0

Нет, это не так. Иногда вы можете пропустить самые простые вещи! Спасибо за (obviouse и, очевидно, необходимо) помощь! –

ответ

3

Вы печатаете классы worldX и block, но затем сравниваете прежние с bug (независимо от того, что есть).

Если они являются того же класса и getClass().equals() возвращает false, одна возможность заключается в том, что существует несколько class loaders в игре.

+0

В случае, когда вы используете несколько загрузчиков классов, вы можете использовать obj.getClass(). GetName(). Equals (otherObj.getClass(). GetName()) – SpacePrez

Смежные вопросы