Java设计问题中的嵌套RepeatingGrps

时间:2011-05-25 17:11:25

标签: java arrays generics nested

编辑:我有两个对象,我必须将一个对象映射到另一个。问题是属性不完全匹配。我正在映射的对象is flat有一堆getter和setter。一切都非常好,易于使用。 我必须将这个映射到一个具有不同结构的Object,在SecAltIDGrp[]等组和下面的attritubes中。使用

设置
ObjectToMapTo.setSecAltIDGrp(SecAltIDGrp[]) 

我有一些重复组,我必须使用来自扁平物体的吸气剂的值进行映射,问题是这样。要映射的对象具有Grps的Array [],它必须由来自扁平对象的各种不同的getter填充。我想不出干净的方法来做到这一点。

例如,我有一个代码数组,其注释具有以下结构。

    public SecAltIDGrp[] populateComments(int NoComments)
    {

        SecAltIDGrp[] x = new SecAltIDGrp[NoComments];
        for(int i; i < NoComments; i++)
        {
            x[i].setAltID(obj.getVal);
            x[i].setAltIDSource(arg0, arg1);
        }
    }

然而,数组中的每个元素都由与平面对象不同的getter填充......

对于在数组中插入if语句并将对象作为参数传入来执行此操作时,我无能为力。这是相当可怕的编码。

我应该为许多这样的团体这样做。有些数组元素设置器本身需要数组。

1 个答案:

答案 0 :(得分:0)

不要使用Array,而是尝试使用HashMaps,这将帮助您更轻松地传递/存储对象。 如果你对hashmap键不是很感兴趣,那么你可以简单地使用ArrayList。

HashMap将存储require组以及密钥。这里的关键字类似于您计划使用的数组索引。

public HashMap< Integer , SecAltIDGrp > populateComments( int NoComments )
{
    HashMap< Integer , SecAltIDGrp > hmSec = new HashMap< Integer , SecAltIDGrp >();
    for(int i; i < NoComments; i++)
    {
          SecAltIDGrp x = new SecAltIDGrp();

          x.setAltID(obj.getVal);
          x.setAltIDSource(arg0, arg1);

          hmSec.put( i , x );
    }

    return hmSec;
}

public class SecAltIDGrp{
   String altId = "";
   String altIdSource = "";

   public void setAltIDSource(  String altIDSource )
   {
       this.altIdSource = altIDSource;
   }

   public void setAltID( String altId )
   {
        this.altId = altID;
   }
}

确保getter和setter也具有相应的参数以满足泛型,以防止在编译期间出现任何警告。

public class ObjectToMapTo
{

   private HashMap< Integer , SecAltIDGrp > hmPrivGrp = new HashMap< Integer,SecAltIDGrp >();

   public void setSecAltIDGrp(  HashMap< Integer , SecAltIDGrp > hmSecAltIDGrp)
   {
          this.hmPrivGrp = hmSecAltIDGrp;
   }
}

这是您设置特定组的方式。存储hashmap而不是数组。     ObjectToMapTo.setSecAltIDGrp(hmSec);

您将能够遍历散列图并能够检索单个SecAltIDGrp

要阅读的一些内容:
http://www.javadeveloper.co.in/java-example/java-hashmap-example.html

相关问题