2011-05-23 57 views
3

我需要从下列类派生:扩展类属参数

public abstract class MyTool<VIEW extends MyView> 
    implements LookupListener, MouseListener, MouseMotionListener, KeyListener {} 

下不起作用:

public abstract class MySubTool<VIEW> extends MyTool<VIEW> {} 

谢谢!

回答

3

在MySubTool编译器,因为没有办法知道VIEWMySubToolMyView一个子类,则必须再次指定它:

public abstract class MySubTool<VIEW extends MyView> extends MyTool<VIEW> {} 
+0

这里是什么编译器报告:无法找到符号 符号:构造MyView的() 位置:类com.mysystem.viewer.MyView 公共MySubTool(){ – malat 2011-05-23 11:42:00

+1

这与您以前的问题无关,这与泛型相关。你的新问题是关于构造函数的。你的基类没有默认的构造函数,所以你必须在''MySubTool''中指定你想用''super''调用的构造函数。 – 2011-05-23 11:53:07

+0

哎呀抱歉的噪音。感谢您的大力帮助! – malat 2011-05-23 11:59:50

1

这应该:

public abstract class MySubTool<VIEW extends MyView> extends MyTool<VIEW> {} 
+0

@downvoter,为什么这是错的? – 2011-05-23 11:57:04