我写这样的样板:
this.lposItems = new LposItems[5];
final LposItems lposItem = new LposItems();
lposItem.setA("24341");
lposItem.setB("14");
final LposItems lposItem1 = new LposItems();
lposItem1.setA("62");
lposItem1.setB("49");
final LposItems lposItem2 = new LposItems();
lposItem2.setA("40");
lposItem2.setB("4");
final LposItems lposItem3 = new LposItems();
lposItem3.setA("62");
lposItem3.setB("63");
final LposItems lposItem4 = new LposItems();
lposItem4.setA("14");
lposItem4.setB("4");
final LposItems lposItem5 = new LposItems();
lposItem5.setA("15");
lposItem5.setB("4");
this.lposItems[0] = lposItem;
this.lposItems[1] = lposItem1;
this.lposItems[2] = lposItem2;
this.lposItems[3] = lposItem3;
this.lposItems[4] = lposItem4;
this.lposItems[5] = lposItem5;
有人可以告诉我任何第三方lib可以减少这个吗? (像现成的建造者或其他一些技术)
答案 0 :(得分:5)
我不确定为什么当Java为您提供所需的语言时,您需要第三方库。例如,您可以创建static
工厂,如下所示
private static LposItems createLposItems(String a, String b) {
LposItems lposItems = new LposItems();
lposItems.setA(a);
lposItems.setB(b);
return lposItems;
}
然后像这样填充你的数组:
this.lposItems = {
createLposItems("24341", "14"),
createLposItems("62", "49"),
createLposItems("40", "4"),
createLposItems("62", "63"),
createLposItems("14", "4"),
createLposItems("15", "4")
};
根据值的来源,您也可以使用循环构建此数组。
答案 1 :(得分:1)
您可以使用for循环来简化此操作。您还可以从文件中加载这两个字符串数组。
String entriesA[] = {"24341", "62", "40", "62", "14", "15"};
String entriesB[] = {"14", "49", "4", "63", "4", "4"};
List<LposItems> items = new ArrayList<LposItems>();
for (int i=0; i<entriesA.size(); i++)
{
items.add(new LposItems());
items.get(i).setA(entriesA[i]);
items.get(i).setB(entriesB[i]);
}
另一种具有工厂类的方法
public class LposItemsFactory
{
public static LposItems getLposItems(String A, String B)
{
LposItems item = new LposItems();
item.setA(A);
item.setB(B);
return item;
}
}
然后您可以使用此方法在同一循环中生成项目
使用包装类
的另一种方法public class LposItemsWrapper extends LposItems
{
public LposItemsWrapper(String A, String B)
{
setA(A);
setB(B);
}
}
然后您可以使用该类而不是LposItems