2014-12-03 4 views
0

У меня есть метод как это:Java Object.class и x.getClass

public Object load(Object type) { 
... 
} 

Обратите внимание, что параметр является объектом типа.

У меня есть несколько классов, которые используют метод loadConfiguration. Внутри метода мне нужно знать класс, поэтому необходимо значение MyObject.class. Ну, потому что у меня есть Object, это не представляется возможным и type.getClass() также генерирует исключение, потому что это просто дает мне java.lang.Class, а не реальный. Одна из возможностей - использовать функцию instanceof, но я хотел бы сохранить ее как можно более общей.

Любые идеи для этого? Я также посмотрел to this topic.

Спасибо!

+0

Do вы знаете, какие классы будут называть 'locad (Object obj)'? .. если это может быть попытка 'instanceOf' .. – Babel

+3

Похоже, вы хотите, чтобы Java Generics был моим другом. Один вопрос. * Почему вам НУЖНО знать тип объекта? Какую специфическую функциональность объекта вы вызываете? – christopher

+0

@looser Nope - это точка – thardes2

ответ

0

Я не уверен в вашем примере, что именно происходит. Я полагаю, что в вашем примере параметр type является объектом класса, поэтому вы можете просто его отличить.

public Object load(Object type) { 
Class<?> clazz = (Class<?>)type; 
... 
} 

телефонный код будет выглядеть

blah.load(MyObject.class); 

Если на самом деле вам нужно знать класс типа метод быть вызван, вы можете просто позвонить

Class<?> clazz = this.getClass() 
Смежные вопросы