Ste*_*ess 5 java generics inheritance
我的顶级课程就像魅力一样:
public class TestA<E extends Test>
{
List<Vector<E>> list;
String name, location;
TestA(String name, String location)
{
this.name = name;
this.location = location;
list = new ArrayList<Vector<E>>();
}
void populate(Test[] arr)
{
for(Vector<E> vk : list)
{
// Code here...
}
}
}
class OrderedTest<E extends Test> extends TestA {
OrderedTest(String name, String location)
{
super(name, location);
}
void populate(Test[] arr)
{
for(Vector<E> vk : list) // ERROR: Cannot convert from element Object to Vector<E>
{
// Code here...
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的子类中扩展populate()时,我基本上只想在这里使用相同的方法我想要订购的东西,所以我会在快速方法中拉出每个Vector,但除了以下之外我不会遇到任何其他问题: // ERROR: Cannot convert from element Object to
编辑:我应该为TestA实现Iterator吗?
Pat*_*han 10
在编码时,"E"作为通用参数的两种用法是独立的并且是断开的.Vector<E>在一个类中并不意味着在另一个类中Vector<E>.
将子类声明更改为:
class OrderedTest<E extends Test> extends TestA<E>
Run Code Online (Sandbox Code Playgroud)
超类声明中的E与OrderedTest中的E相同.