Czy istnieje sposób na przekazanie klasy jako parametru w Javie i uruchomienie niektórych metod z tej klasy?
void main()
{
callClass(that.class)
}
void callClass(???? classObject)
{
classObject.somefunction
// or
new classObject()
//something like that ?
}
Używam Google Web Toolkit i nie obsługuje on refleksji.
java
class
gwt
parameters
Michael Dorner
źródło
źródło
Aby wywołać metodę, nazywasz ją w ten sposób:
źródło
Skonstruuj swoją metodę, aby ją zaakceptować-
Zadzwoń do metody
Możesz również ograniczyć typ klasy, na przykład jest to jedna z metod z biblioteki, którą stworzyłem-
Aby uzyskać więcej informacji, przeszukaj opcję Reflection and Generics.
źródło
Posługiwać się
A
Class
jest również obiektem Java, więc możesz się do niego odwoływać, używając jego typu.Przeczytaj więcej na ten temat w oficjalnej dokumentacji .
źródło
Takie rzeczy nie są łatwe. Oto metoda, która wywołuje metodę statyczną:
Aktualizacja: poczekaj, właśnie zobaczyłem tag gwt w pytaniu. Nie możesz użyć odbicia w GWT
źródło
Nie jestem pewien, co próbujesz osiągnąć, ale możesz rozważyć, że zaliczenie zajęć może nie być tym, co naprawdę musisz robić. W wielu przypadkach radzenie sobie z klasą taką jak ta można łatwo zamknąć w jakimś wzorcu fabrycznym, a użycie tego odbywa się za pośrednictwem interfejsu. oto jeden z kilkudziesięciu artykułów na ten temat: http://today.java.net/pub/a/today/2005/03/09/factory.html
użycie klasy w fabryce można osiągnąć na różne sposoby, w szczególności poprzez posiadanie pliku konfiguracyjnego, który zawiera nazwę klasy implementującej wymagany interfejs. Następnie fabryka może znaleźć tę klasę ze ścieżki klas i skonstruować ją jako obiekt określonego interfejsu.
źródło
Jak powiedziałeś, GWT nie wspiera refleksji. Należy użyć odroczonego wiązania zamiast odbicia lub biblioteki innej firmy, takiej jak gwt-ent, aby obsługiwać odbicia w warstwie gwt.
źródło
Zobacz: http://download.oracle.com/javase/tutorial/extra/generics/methods.html
tutaj jest wyjaśnienie metod szablonowych.
źródło
Spójrz na samouczek refleksji i interfejs API do refleksji w Javie:
https://community.oracle.com/docs/DOC-983192 wprowadź tutaj opis linku
i
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html
źródło
Klasa jako parametr. Przykład.
Trzy klasy:
-
-
W metodzie klasy Terminal hackCar () jako parametr przyjmuje się klasę TestCar.
źródło