tôi có ba giao diện chung (với một mối quan hệ nghịch đảo giữa hai trong số họ) và muốn xử lý chúng trong một phương pháp đệ quy:Làm việc với Đệ quy và Generic Giao diện
public interface User<R extends Role<R,U>, U extends User<R,U>>
{
public R getRole();
public void setRole(R role);
}
public interface Role<R extends Role<R,U>,U extends User<R,U>>
{
public List<R> getRoles();
public void setRoles(List<R> roles);
public List<U> getUser() ;
public void setUser(List<U> user);
}
Bây giờ tôi muốn làm một số xử lý với một đệ quy trong lớp Worker
tôi:
public <R extends Role<R,U>,U extends User<R,U>> void recursion(List<R> roles)
{
for(R role : roles)
{
recursion(role.getRoles());
}
}
tôi nhận được lỗi này và tôi đã không tìm ra lý do tại sao điều này không làm việc hoặc làm thế nào tôi có thể giải quyết này:
Bound mismatch: The generic method recursion(List<R>) of type Worker is not
applicable for the arguments (List<R>). The inferred type User<R,User<R,U>>
is not a valid substitute for the bounded parameter <U extends User<R,U>>
Tôi không chắc chắn về ý nghĩa của việc thay đổi phương thức giao diện cho 'Role'. Tôi giả sử nó trả về một danh sách giao diện của 'vai trò'. Tôi đang sử dụng các giao diện cho một số triển khai '@ Entity'. Phương thức đệ quy được sử dụng trong một lớp tiện ích, có lẽ đề xuất ký tự đại diện '? 'Của dacwe phù hợp với tôi. – Thor