[英]How can I get the type of a class to use as a method parameter?
我有以下 class:
public abstract class A<T extends Event> {
void onEvent(T event);
}
和一個Class<? extends Event> clazz
Class<? extends Event> clazz
object。如何使用與我的 class object 相同的泛型類型參數創建A
的匿名子類? 換句話說,如何從我的 class object 獲取類型並將其傳遞給A
的新子類?
是這樣的:
new A<clazz.getType()>() {
@Override
public void onEvent(clazz.getType() event) {}
}
Java 是一種編譯語言,因此您不能動態更改 class 類型,因此我們必須定義 if 塊以根據數據更改類型。
您的主要Event
class:
public class Event {}
A
class 得到class的類型
public abstract class A<T extends Event> {
void onEvent(T t){};
}
樣本繼承 class
public class Sample extends Event {}
簡單實現
Sample sample = new Sample();
if (sample instanceof Sample) {
A<Sample> a = new A<Sample>() {
@Override
public void onEvent(Sample t) {
System.out.println(t.toString());
}
};
// Simple implementation
a.onEvent(sample);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.