我正在写一个通用的 Dao 接口,我遇到了一些问题。
我有以下通用实体接口
public interface Entity<T> {
T getId();
//more code
}
所以泛型参数应该代表实体的id。现在我想写一个像这样的通用 Dao initerface
public interface Dao<T extends Entity<E>> {
//more code
T find(E id);
}
为了能够打电话
T find(E id)
而不必打电话
T find(Object id)
这不是类型安全的。
不幸的是,编译器似乎无法解析 E in
Dao<T extends Entity<E>>
你们有谁知道这个问题是否有解决方法,或者在 Java 中是不可能的?