我有多個(gè)類,它們都有一個(gè)共同的領(lǐng)域。我正在編寫一個(gè)處理提取這個(gè)公共字段的方法。例如:class A{ .. String blah; ..}class B{ .. String blah; ..}因此,可以使用接受泛型類的方法來實(shí)現(xiàn)這一點(diǎn),而不是為每個(gè)類類型編寫多個(gè)方法嗎?我想要的是有一種類型的方法:void func(List <T> data){ for(T t:data){ print t.blah() }}我知道上面的代碼是不正確的,但是我們?nèi)绾潍@得類似的功能呢?
1 回答
慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
首先,創(chuàng)建一個(gè)包含所有通用方法簽名的接口。
interface Blah {
String getBlah();
}
然后,創(chuàng)建現(xiàn)有的類A并B實(shí)現(xiàn)該接口。(用于@Override確保您正確地覆蓋該方法。)
最后,在 中func,獲取實(shí)現(xiàn)該接口的對象列表。
void func(List<? extends Blah> data) {
for (Blah t : data) {
System.out.println(t.getBlah());
}
}
添加回答
舉報(bào)
0/150
提交
取消
