簡體   English   中英

提取通用 class 的字段

[英]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();
}

然后,讓現有的類AB實現該接口。 (使用@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM