我有三個通用接口(其中兩個之間的逆關係),並要處理他們在一個遞歸方法:用遞歸和通用接口工作
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);
}
現在我想要做一些處理了遞歸在我Worker
類:
public <R extends Role<R,U>,U extends User<R,U>> void recursion(List<R> roles)
{
for(R role : roles)
{
recursion(role.getRoles());
}
}
我得到這個錯誤,我也沒有想通了,爲什麼這不工作或我怎麼能解決這個問題:
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>>
我不確定有關更改'Role'接口方法的含義。我假設它返回'角色'的接口列表。我正在使用一些'@ Entity'實現的接口。遞歸方法在一個實用類中使用,dacwe的通配符「?」適用於我。 – Thor