2016-05-18 3 views
-2

クラスAにはnamevalueの属性があります。キー値リストを返す、キーは属性であり、値は他のクラスの属性値です

public class A { 
    private String name; 
    private String value; 

    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getValue() { 
     return value; 
    } 
    public void setValue(String value) { 
     this.value = value; 
    } 
} 

私はattribute01キーどこ値は、({attribute01, getAttribute01()},{attribute02, getAttribute02()})として、BからgetAttribute01()であるを有する、Aタイプのリストを返すしたいような

public class B { 
    private String attribute01; 
    private String attribute01; 
    private String attribute01; 

    public String getAttribute01() { 
     return attribute01; 
    } 
    public void setAttribute01(String name) { 
     this.attribute01 = name; 
    } 
    ... 
} 

ように、別のクラスBを有しています。

これを実装する方法は?

ありがとうございます。

+1

あなたのキー値リストはどこですか?リストの代わりに –

+0

、Map.yourプログラムを使用する必要がありますリストを使用する必要がありますか? – sawyinwaimon

+0

あなたはキーが文字列 '' '" atribute01 "' ''であることを意味しますか? –

答えて

1

実は私はそれらの一部のハードコーディング、それは賢い方法ではありません明らかに、任意の提案など

public List<A> keyvalueList(final B objB) { 
List<A> list = new ArrayList<>(); 

A objA = new A(); 
objA.setName("attribute01"); 
objA.setValue(objB.getAttribute01()); 
list.add(objA); 

objA = new A(); 
objA.setName("attribute02"); 
objA.setValue(objB.getAttribute02()); 
list.add(objA); 

... 

return list; 
} 

として、非常に愚かな方法を使用することができます。

+0

あなた自身の質問に答えようとしていますか?そうでない場合は:**アップデート**あなたの質問。 – GhostCat

0

List.Pleaseを使用しても問題ないコードをチェックしてください。別のクラスCを追加しました。これは2つの属性String nameFromAとString attFromBを持っています。次はサンプルコードです。

public class A { 
    private String name; 
    private String value; 

    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getValue() { 
     return value; 
    } 
    public void setValue(String value) { 
     this.value = value; 
    } 

} 
public class B { 
    private String att1; 
    private String att2; 
    private String att3; 
    public String getAtt1() { 
     return att1; 
    } 
    public void setAtt1(String att1) { 
     this.att1 = att1; 
    } 
    public String getAtt2() { 
     return att2; 
    } 
    public void setAtt2(String att2) { 
     this.att2 = att2; 
    } 
    public String getAtt3() { 
     return att3; 
    } 
    public void setAtt3(String att3) { 
     this.att3 = att3; 
    } 


} 

public class C { 
    private String namefromA; 
    private String attfromB; 
    public String getNamefromA() { 
     return namefromA; 
    } 
    public void setNamefromA(String namefromA) { 
     this.namefromA = namefromA; 
    } 
    public String getAttfromB() { 
     return attfromB; 
    } 
    public void setAttfromB(String attfromB) { 
     this.attfromB = attfromB; 
    } 
} 

    public class Test { 

     public static void main(String args[]){ 
      C c = new C(); 
      A a = new A(); 
      B b = new B(); 
      a.setName("A1"); 
      b.setAtt1("100"); 
      c.setNamefromA(a.getName()); 
      c.setAttfromB(b.getAtt1()); 
List list = new ArrayList(); 
//use generic 
list.add(c); 

     } 

    } 

あなたはクラスCを使用しない場合、あなたはその

import java.util.ArrayList; 
import java.util.List; 

public class Test { 
    private String nameFromA; 
    private String valueFromB; 


    public Test(String nameFromA, String valueFromB) { 
     super(); 
     this.nameFromA = nameFromA; 
     this.valueFromB = valueFromB; 
    } 
    public static void main(String args[]){ 

     A a = new A(); 
     B b = new B(); 
     a.setName("A1"); 
     b.setAtt1("100"); 
     Test test = new Test(a.getName(),b.getAtt1()); 
     List list = new ArrayList(); 
     list.add(test); 

    } 


} 

のようなテストクラスを使用することができます。これは私の意見ですが、それは大丈夫ですかをチェックonly.Please。

関連する問題