问题描述
|
编辑:我有两个对象,我必须将一个映射到另一个。问题在于属性不完全匹配。我要映射的对象是扁平的,有一堆吸气剂和吸气剂。一切都非常好,易于使用。
我必须将其映射到一个对象,该对象在诸如“ 0”之类的组和诸如以下那些之类的attritube中具有某种不同的结构。使用哪个设置
ObjectToMapTo.setSecAltIDGrp(SecAltIDGrp[])
我有几个重复的组,我必须将它们与平面对象的getter的值映射,问题是这样的。要映射到的对象具有Grps的Array [],必须由来自平面对象的各种不同的吸气剂填充。我想不出一种干净的方法来做到这一点。
例如,我有一个代码,其中包含以下结构的注释数组。
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);
}
}
但是数组的每个元素都由与平面对象不同的吸气剂填充...
我不能很好地做到这一点,在阵列中插入if语句并将对象作为参数传入。这是相当恐怖的编码。
我应该为许多这样的团体这样做。对于某些数组元素设置程序,它们自己需要数组。
解决方法
代替使用Array,请尝试使用HashMaps,这将帮助您更轻松地传递/存储对象。
如果您对哈希映射键并不真正感兴趣,则可以简单地使用ArrayList。
HashMap将存储require组和密钥。这里的键将类似于您计划使用的数组Index。
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;
}
}
这是您设置特定组的方式。存储哈希图而不是数组。
ObjectToMapTo.setSecAltIDGrp(hmSec);
您将能够遍历哈希图,并能够检索单个SecAltIDGrp
一些要阅读的东西:
http://www.javadeveloper.co.in/java-example/java-hashmap-example.html