- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
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
ánh>
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/
Tôi có một kịch bản tương tự như hai lớp sau: public class Person { Private String name; private Set familyMembers /;
Làm cách nào để ánh xạ một trường đơn lẻ vào Danh sách/Bộ sưu tập trong Dozer? class SrcFoo { id chuỗi riêng; thanh danh sách riêng }
Tôi đang ánh xạ hai đối tượng DTO thông qua trình ánh xạ Dozer. Tôi quan tâm đến việc chọn một giá trị từ danh sách và ánh xạ nó tới một trường duy nhất trong tệp mục tiêu. Có thể sử dụng ánh xạ như thế này không: someList[0] someVariab
Tôi đang sử dụng Dozer để ánh xạ các đối tượng. Làm cách nào để bỏ qua (loại trừ) các trường được chú thích bằng dozer? Tương tự như: class A { @IgnoreField public String so
Tôi đã mắc kẹt với rắc rối này hai ngày nay nhưng tôi không thể giải quyết được. Tôi có: lớp công khai ClientBo{ ... Danh sách người ... } và lớp công khai ClientV
Tại sao dozer không thể ánh xạ biến Lớp Nguồn thuộc loại Số thành biến Lớp Đích cùng loại? Ngoại lệ sau xảy ra: java.lang.IllegalArgumentExce
Làm cách nào để lập trình thiết lập bộ chuyển đổi tùy chỉnh cho máy ủi? Đoạn mã sau không hoạt động: Triển khai trình chuyển đổi tùy chỉnh: class ConverterImpl mở rộng DozerConverter { ConverterImpl()
Tôi cần biên dịch một chương trình nhắm đến một kiến trúc cụ thể hoặc tốt hơn nữa là biên dịch bằng cách sử dụng các lệnh AMD64 chung, bỏ qua các CPU AMD mới hơn (Dozer và Piledriver). Cụ thể, tôi cần phải hoàn toàn bỏ qua mọi hướng dẫn FMA hoặc XOP (tôi hiểu rằng những hướng dẫn này thường được tìm thấy trong O
Tôi muốn ánh xạ DTO (cả hai kiểu dữ liệu chuỗi) thành VO (chứa String, int, boolean, Date) sinh viên DTO riêng Sinh viênDetailDTO chi tiết sinh viên DTO:
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. public class Trường { Liệt kê các mục; public void a
Có cách nào để định cấu hình dozer thông qua tệp ánh xạ xml của nó để chuyển đổi giá trị trường int thô của -1 thành tham chiếu đối tượng null không? Giá trị mặc định của mô hình đối tượng kế thừa là -1, do đó, số 0 có thể là lựa chọn hợp lệ. Các giả định mô hình đối tượng mới hơn mà chúng tôi muốn ánh xạ tới
Tôi đang cố gắng triển khai Dozer làm công cụ trợ giúp ở chế độ cầu nối trên ứng dụng web hiện tại của mình đang chạy Spring và Hibernate, nhưng tôi nghĩ mình đã làm sai điều gì đó vì việc cố gắng sử dụng phiên bản DozerBeanMapper nhiều lần sẽ
Tôi là một lập trình viên xuất sắc, rất giỏi!