Список классов Java как в Python

1

У меня есть классы, унаследованные от абстрактного пакета (этот класс имеет абстрактный метод с именем read, который читается из ByteBuffer).

в Python я бы сделал что-то вроде...

class Blabla(Packet):
    pass
class Blabla2(Packet):
    pass

и тогда я бы начал каждый класс в списке, как это

_packets = [Blabla, Blabla2]

и когда я буду идентифицировать идентификатор пакета, я бы сделал это

pck = _packets[packetId]()

Хотите сделать то же самое в java. Есть ли какой-либо быстрый способ (кроме использования переключателя)

Теги:
class
list

3 ответа

4
Лучший ответ

Да, в Java можно сделать что-то очень похожее.

Вы можете иметь список объектов Class а затем вызвать list.get(packetId).newInstance() чтобы создать экземпляр правильного класса.

См. Javadoc.

3

Это то, что вы должны делать:

ArrayList<Class> list = new ArrayList<Class>();
list.add(Class.forName("Blabla"));
list.add(Class.forName("Blabla2"));

list.get(packetId).newInstance();
2

Возможно, вы ищете Class#newInstance().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню