cuốn sách gpt4 ai đã làm

Bulldozer, Java: Cách chuyển đổi từ Danh sách sang mảng 2D?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 19:49:07 27 4
mua khóa gpt4 Nike

Tôi có danh sách các danh sách mà tôi đang cố gắng ánh xạ tới mảng 2D [] [] bằng cách sử dụng Dozer và trình chuyển đổi tùy chỉnh.

Trường lớp công khai {
Danh sách các mục ;

public void add(String s) {
items.add(s);
}
}

lớp công khai ClassA {
int anotherBiến;

Danh sách các trường ;

public void add(Field f) {
lĩnh vực.add(f);
}
}

lớp công khai ClassB {
int anotherBiến;

Chuỗi[][] itemValues;
}

@Bài kiểm tra
khoảng trống công khai ConvertListTo2DArray() {
Trường trường1 = Trường mới();
field1.add("m"); field1.add("n");

Trường field2 = Trường mới();
field2.add("o"); field2.add("p");

ClassA classA = ClassA mới();
classA.add(field1);
classA.add(field2);

classA.setAnotherVariable(99);

List bộ chuyển đổi = new ArrayList();
Converters.add(new ListToArrayConverter());

ClassB classB = new DozerBeanMapper().setCustomConverters(converters).map(classA, ClassB.class);

/**
*Kết quả:
*classB -> anotherVariable = 99
*
* classB -> itemValues[][] =
* ["m", "n"]
* ["o", "p"]
*/
}

Bộ chuyển đổi chỉ có thể được sử dụng với Danh sách chuyển đổi giữa và Sợi dây[][]hơn là các biến khác.

Tôi đã xem câu trả lời cho câu hỏi sau nhưng tôi nên xử lý Mảng thay vì Bộ/Danh sách trong trình chuyển đổi tùy chỉnh này như thế nào? Ánh xạ Dozer từ HashSet tới Arraylist

Mọi đề xuất sẽ được đánh giá rất cao. Cảm ơn

câu trả lời hay nhất

Java của tôi hơi rỉ sét, xin hãy kiên nhẫn.

Nếu bạn muốn trình chuyển đổi chỉ được sử dụng để chuyển đổi mảng Danh sách thành Chuỗi và không có gì khác, một trong những cách bạn có thể hạn chế nó là chỉ định một trình chuyển đổi tùy chỉnh cho chỉ hai trường này trong xml:

<ánh xạ="">
beans6.ClassA
beans6.ClassB

trường
giá trị mục


Kế tiếp,Cánh đồng trong lớp mặt hàng thuộc tính và Hạng A trong lớp lĩnh vực Các thuộc tính cần được khởi tạo dưới dạng danh sách mảng để ngăn chúng ném NullPointerNgoại lệ.

Danh sách items = new ArrayList();
List field = new ArrayList();

Cuối cùng, đây là CustomConverter, giả sử được thêm vào lĩnh vực Số phần tử luôn giữ nguyên:

lớp công khai ConvertListToArray triển khai CustomConverter{
chuyển đổi đối tượng công khai (Đối tượng hiện cóDestinationFieldValue, đối tượng sourceFieldValue,
Lớp DestinationClass, Lớp sourceClass) {
if(sourceFieldValue==null)
return null;

if(sourceFieldValue instanceof List && ((List) sourceFieldValue).size()>0){
Danh sách listOfFields = (Danh sách)sourceFieldValue;

Chuỗi [] [] DestinationValue = Chuỗi mới [2] [2];
cho (int i = 0; i<2;i++){
Trường f = listOfFields.get(i);
for (int j = 0;j<>
DestinationValue[i][j] = f.getItems().get(j);
}
}
trả lại giá trị đích;

}
return null;
}
}

Về java - Bulldozer, Java: How to Convert from List to 2D Array?, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/46929281/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress