Java:错误:在调用超类型构造函数之前无法引用此
我正在尝试向Java:错误:在调用超类型构造函数之前无法引用此,java,constructor,imageicon,Java,Constructor,Imageicon,我正在尝试向javax.swing.ImageIcon添加一个构造函数。它应解析目录结构,以便能够像图像地图一样访问ImageIcon类 我想做的是: public class CPImageIcon extends ImageIcon { public CPImageIcon(String name) { super(this.getClass().getResource("/desktopapplication1/resources/" + name), "des
javax.swing.ImageIcon
添加一个构造函数。它应解析目录结构,以便能够像图像地图一样访问ImageIcon
类
我想做的是:
public class CPImageIcon extends ImageIcon {
public CPImageIcon(String name) {
super(this.getClass().getResource("/desktopapplication1/resources/" + name), "description");
}
但这导致:
警告:[选项]引导类路径未与-source 1.7一起设置
I:\DesktopApplication1\src\DesktopApplication1\CPImageIcon.java:18:错误:在调用超类型构造函数之前无法引用此
super(this.getClass().getResource(“/desktopapplication1/resources/”+name),”);
如果我试图超越其他构造函数,它会起作用。
super
构造函数必须是子类构造函数中的第一个调用。
如果ommitted,它将自动调用默认构造函数super()
此
表示当前实例,在调用super之前不能使用
您可以使用以下方法(注释或未注释):
import javax.swing.*;
public class CPImageIcon extends ImageIcon {
public CPImageIcon(String name) {
super(CPImageIcon.class.getResource("/desktopapplication1/resources/" + name), "description");
// super(Thread.currentThread().getContextClassLoader().getResource("/desktopapplication1/resources/" + name), "description");
}
}
您真的需要扩展
ImageIcon
?您是否可以不直接使用工厂方法构建ImageIcon
的实例?