Java Object.class и x.getClass

У меня есть такой метод:

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

Обратите внимание, что этот параметр является Object-type.

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

Есть идеи для этого? Я также посмотрел на эту тему.

Спасибо!

1 ответ

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

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

Тогда код вызова будет выглядеть так:

blah.load(MyObject.class);

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

Class<!--?--> clazz = this.getClass()

licensed under cc by-sa 3.0 with attribution.