0

オブジェクトのすべての要素を ArrayList に追加しようとしています。オブジェクトの要素の型が異なります。

たとえば、emp_id、name、address、DOB などの属性を持つオブジェクト Employee です。

各属性をオブジェクトとして ArrayList に格納したいと考えています。お気に入り、

ArrayList[1] = Employee.emp_id
ArrayList[2] = Employee.name
ArrayList[3] = Employee.address

ダイナミックにやりたい。同様に、将来、手動作業を行うことなく、このオブジェクトにさらに多くの属性が追加されます。配列リストを作成する方法はありますか?

4

1 に答える 1

0

ArrayListは同じタイプである必要があります。JavaのすべてのオブジェクトはObjectを拡張するため、実行していることを実行できるタイプのArrayListを使用できます。ただし、異なるオブジェクトタイプを配列リストに格納しようとしている場合、これは不可能です。

あなたは最初の部分があなたの投稿で少し不明瞭だったことを知っているかもしれません。

リフレクションを使用してオブジェクトでこれを行う方法は次のとおりです。

//make sure you import java.lang.reflect.*

public void addMyFields(Employee e){
    ArrayList<Object> list = new ArrayList();
    for (Field field : emp.getClass().getDeclaredFields())
    {
        field.setAccessible(true);
        list.add(field.get(emp);
    }    
}
于 2013-03-21T21:46:07.563 に答える