假设我假设扩展LinkedList
以创建一个名为GroceryList
的专门子类。
GroceryList
参数化为类GroceryItem
作为其类型。
当我尝试在GroceryItem
中作为实例访问GroceryList
时,我在NetBeans中遇到了这个编译错误:
incompatible types
Required: GroceryItem
Found: Object
where GroceryItem is a type-variable
GroceryItem extends Object declared in class GroceryList
显然这是由于“类型擦除”,到目前为止,我没有成功使用类作为“类型变量”和类这样的类...
public class GroceryList<GroceryItem> extends LinkedList {
public GroceryList() {
}
public double getItemPrice(GroceryItem item) {
// compile-error occurring here:
return item.getPrice();
}
// compile-error occurring here:
public GroceryItem getGroceryItem(String name, String brand, double price) {
// ...finding the grocery item based on the parameters here:
// ...
return item;
}
} // end of class
答案 0 :(得分:3)
使用LinkedList
类型
GroceryItem
public class GroceryList extends LinkedList<GroceryItem>
或使用以下方法将类定义为泛型:
public class GroceryList<T extends GroceryItem> extends LinkedList<T>