[英]Transform a java list to object
我必须将包含一些字符串的列表转换为java对象,这是列表:
[099882, 11, 6, 0, 25]
该列表的每个位置代表一个Java类中的一个字段,这是该类:
public class Chunks extends BaseModel {
private static final long serialVersionUID = 1494042139468968199L;
private String field1;
private String field2;
private String field3;
private String field4;
private String field5;
public Chunks(String field1, String field2, String field3, String field4, String field5) {
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
this.field4 = field4;
this.field5 = field5;
}
}
我像这样填写清单:
private static void splitFile(Path path){
int[] fileSplits = {6,2,1,1,2};
int total = 0;
List<String> stringList = new ArrayList<String>();
for (int i = 0 ; i < fileSplits.length ; i++) {
stringList.add(path.toString().substring(total, total+=fileSplits[i]));
}
// Have to transform the list just right here !!!
// and then..
// dbInsert(convertedObject);
}
任何想法?
也许您可以在构造函数的签名中使用数组,而不是列出所有字段:
public class Chunk{
private static final long serialVersionUID = 1494042139468968199L;
private String field1;
private String field2;
private String field3;
private String field4;
private String field5;
public Chunk(String[] fields) {
this.field1 = fields[0];
this.field2 = fields[1];
this.field3 = fields[2];
this.field4 = fields[3];
this.field5 = fields[4];
}
}
您甚至可以使用数组来保存Chunk的字段:
public Chunk(String[] fields) {
this.fields = fields;
}
无论哪种方式,另一段代码都只需要向Chunk的构造函数提供字符串数组即可:int [] fileSplits = {6,2,1,1,2}; int total = 0;
String[] stringList = new String[fileSplits.length];
for (int i = 0 ; i < fileSplits.length ; i++) {
stringList = path.toString().substring(total, total+=fileSplits[i]);
}
Chunk chunk = new Chunk(stringList);
您当然应该添加一些验证,以确保在Chunk的构造函数中不会引发ArrayOutOfBoundException。
public Chunk(String[] fields) {
if(fields==null || fields.length<5){
throw new SomeException();
}
this.field1 = fields[0];
this.field2 = fields[1];
this.field3 = fields[2];
this.field4 = fields[3];
this.field5 = fields[4];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.