[英]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.