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 đây xảy ra:
java.lang.IllegalArgumentException: argument type mismatch
Một số thông tin thêm:
Lớp cha đích đến: XXX
Tên trường nguồn: TotalAccounts
Loại trường nguồn: lớp java.lang.Integer
Giá trị trường nguồn: 8
Lớp cha đích đến: XXX
Tên trường đích: TotalAccounts
Loại trường đích: java.lang.Number
Ở đây, cả lớp nguồn và lớp đích đều đề cập đến cùng một loại lớp, chẳng hạn như Giao dịch. Cả hai đều có trường Số nhưng trong khi ánh xạ từ lớp nguồn sang lớp đích, nó sẽ đưa ra ngoại lệ như vậy.
Tôi không hiểu tại sao "tham số không khớp" lại xảy ra đối với cùng một loại dữ liệu?
Theo thông báo Dozer của bạn, nó không cùng loại. Trường nguồn là số nguyên
, trường mục tiêu là Number
.
Tài liệu của DozerKhông có đề cập nào đến trình chuyển đổi tích hợp sẵn như vậy (ít nhất là nếu tôi đọc chính xác), vì vậy bạn có thể cần phải triển khai triển khai org.dozer.CustomConverter của riêng mình. Vì bạn nói là cùng lớp, cùng lĩnh vực nên mình không biết tại sao lại có một cáisố nguyên
, cái còn lại làNumber
(Ít nhất, không có thêm thông tin về các lớp và tệp ánh xạ). Tốt hơn hết là kiểm tra kỹ các tệp lớp và ánh xạ rồi thử sử dụng Trình chuyển đổi tùy chỉnh
như một cách giải quyết.
Tôi là một lập trình viên xuất sắc, rất giỏi!