以下 java 类声明不正确:
public class BookKeeping<T extends Transaction<K extends Money>> { ... }
在这里,不能使用泛型声明K extends Money
。
我的问题是为什么不允许这种声明?应该如何用 java 泛型声明这样一个类?
解决方案
class Money {
}
class Dollar extends Money {
}
class Transaction<T extends Money> {
}
public class BookKeeping<K extends Money,T extends Transaction<K>> {
public void foo () {
Dollar d = new Dollar();
Transaction<Dollar> t = new Transaction<Dollar>();
BookKeeping<Dollar, Transaction<Dollar>> b = new BookKeeping<Dollar, Transaction<Dollar>>();
}
}