2013-09-26 1 views
1

Я хочу, чтобы сделать метод, результатом которого зависит от имени введенного классаJava: сравнение простого имени класса с String; переименование класса с Eclipse, игнорирует строки

public boolean isOK (ProcessingTask pt){ 
if (pt.getClass().getSimpleName().equals("ProcessingTaskreplaceOUWithinThisItem")){ 
    return true; 
} 

return false; 
} 

public class ProcessingTaskreplaceOUWithinThisItem extends ProcessingTask { 

, но я думаю, что это опасно, так как рефакторинга в Eclipse, не видит, что моя строка в факт имя класса.

Есть ли способ определить «ProcessingTaskreplaceOUWithinThisItem» как «имя класса», которое также получит рефакторинг?

+1

Можно сделать 'pt.getClass() == MyClassName.class', чтобы обнаружить точное совпадение. В противном случае 'instanceof', вероятно, лучший выбор. –

ответ

1
pt instanceof ProcessingTaskreplaceOUWithinThisItem.class 
+0

Это, на самом деле, лучший способ решить проблему в целом. –

+1

Конечно, это обнаружит любой * подкласс * именованного класса. –

+0

Теперь я понимаю, что страдал от вонючего кода. Я порезал свои объекты по-другому и развязал их, теперь все очень хреново. –

0

Вы можете сделать это следующим образом:

ProcessingTaskreplaceOUWithinThisItem.class.getSimpleName() 
Смежные вопросы