[英]Extracting field of a generic class
我有多個類,它們都有一個共同的領域。 我正在編寫一種處理提取這個公共字段的方法。 例如:
class A{
..
String blah;
..
}
class B{
..
String blah;
..
}
因此,與其為每個 class 類型編寫多個方法,不如使用接受通用 class 的方法來實現? 我想要的是有一個類型的方法:
void func(List <T> data){
for(T t:data){
print t.blah()
}
}
我知道上面的代碼不正確,但我們如何獲得類似的功能?
首先,創建一個包含任何常用方法簽名的接口。
interface Blah {
String getBlah();
}
然后,讓現有的類A
和B
實現該接口。 (使用@Override
確保您正確地覆蓋了該方法。)
最后,在func
中,獲取實現該接口的對象列表。
void func(List<? extends Blah> data) {
for (Blah t : data) {
System.out.println(t.getBlah());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.