2016-12-05 59 views
0

我有一個與ArrayList KeyValue對象工作的適配器類。使用ArrayList的類中的Xobjects與YObject的ArrayList

class Adapter { 

     public Adapter(ArrayList<KeyValue> items){ 
     ..... 
     } 

} 

class KeyValue { 

    String name; 
    int id; 
    ... 
} 

,但問題是我有水果的ArrayList這樣

class Fruits { 

    String fruitName; 
    int id; 
    ..... 
} 

有沒有辦法使用水果的ArrayList中沒有將它們轉換爲鍵值的ArrayList的「性能問題「。而不使用反思「再次表現問題」?也許創建一個連接器類?
當然,主要的問題是水果有很多不同的物體。

+1

如果所有類都是鍵值對,那麼最好使用HashMap來表示它們 – Bhargav

+0

問題是我不創建arrayLists – max

回答

1

簡短的回答是否定的。儘管如此,你可以聲明一個通用的基類:

abstract class NamedObject { 
    String name; 
    int id; 
}; 

但是所有的類都必須從它繼承。如果你不能改變類的定義,你可以使用一個額外的對象,可以訪問該名稱,並在列表中的元素的ID:

interface Accessor<T> { 
    String getName(T obj); 
    int getId(T obj); 
} 

這當然會影響性能。