2016-12-05 7 views
0

ArrayList KeyValueオブジェクトで作業するアダプタクラスがあります。ArrayList YObjectsのArrayListで動作するクラスのXobjectsを使用します。

class Adapter { 

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

} 

class KeyValue { 

    String name; 
    int id; 
    ... 
} 

が、問題は、私はこの

class Fruits { 

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

のような果実のArrayListのを持っているです。KeyValueのArrayListにそれらを変換することなく、果実のArrayListのを使用する方法」がありますパフォーマンスの問題 "です。反射を使用せずに "もう一度パフォーマンスの問題"?おそらくコネクタクラスを作成する?
もちろん、主な問題はフルーツのようなさまざまなオブジェクトがたくさんあることです。

+1

すべてのクラスがキー値のペアである場合、それらを表すためにハッシュマップを使用する方が良い – Bhargav

+0

問題は配列リストを作成しないことです – max

答えて

1

短い答えはノーです。ただし、共通の基底クラスを宣言することもできます。

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

しかし、すべてのクラスを継承する必要があります。

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

、当然の性能に影響を与える:あなたは、クラスの定義を変更できない場合は、名前と、リスト内の要素のIDにアクセスすることができ、追加のオブジェクトを使用します。

関連する問題