Есть ли способ передать класс в качестве параметра в Java и запустить некоторые методы из этого класса?
void main()
{
callClass(that.class)
}
void callClass(???? classObject)
{
classObject.somefunction
// or
new classObject()
//something like that ?
}
Я использую Google Web Toolkit, и он не поддерживает отражение.
java
class
gwt
parameters
Майкл Дорнер
источник
источник
Чтобы вызвать метод, вы вызываете его так:
источник
Создайте свой метод, чтобы принять его
Вызовите метод-
Вы также можете ограничить тип класса, например, это один из методов из библиотеки, которую я сделал:
Для получения дополнительной информации, поиск Reflection and Generics.
источник
использование
Class
также является Java-объектом, поэтому вы можете ссылаться на него, используя его тип.Подробнее об этом читайте в официальной документации .
источник
Это не легко. Вот метод, который вызывает статический метод:
Обновление: Подожди, я только что увидел тэг gwt в вопросе. Вы не можете использовать отражение в GWT
источник
Я не уверен, что вы пытаетесь достичь, но вы можете подумать, что прохождение класса может не быть тем, что вам действительно нужно делать. Во многих случаях работа с классом, подобным этому, легко инкапсулируется в фабричный шаблон некоторого типа, и использование этого выполняется через интерфейс. Вот одна из десятков статей по этому шаблону: http://today.java.net/pub/a/today/2005/03/09/factory.html
использование класса внутри фабрики может быть достигнуто различными способами, в частности, с помощью файла конфигурации, который содержит имя класса, реализующего требуемый интерфейс. Затем фабрика может найти этот класс из пути к классу и построить его как объект указанного интерфейса.
источник
Как вы сказали, GWT не поддерживает рефлексию. Вы должны использовать отложенное связывание вместо отражения или стороннюю библиотеку, такую как gwt-ent, для поддержки отражения на слое gwt.
источник
Вот эти: http://download.oracle.com/javase/tutorial/extra/generics/methods.html
Вот объяснение шаблонных методов.
источник
Взгляните на учебник по отражению и API отражения в Java:
https://community.oracle.com/docs/DOC-983192 введите описание ссылки здесь
и
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html
источник
Класс как параматер. Пример.
Три класса:
-
-
В классе Terminal метод hackCar () принимает класс TestCar в качестве параметра.
источник