我对"getClass"有问题,eclipse编写了以下消息:"无法从Object类型静态引用非静态方法getClass((">
这是代码:
public static void main(String[] args) {
JFrame f = new JFrame();
File path = new File(getClass().getResource("/resources/image.jpg").getFile());
BufferedImage image = ImageIO.read(path);
谢谢!
(如果类名是Main
,则(使用Main.class.getResource
而不是this.getClass.getResource
阅读本文了解更多详细信息。
静态方法属于class
。
非静态方法属于类的instance
。
当您调用getResource()
时,它不与任何实例关联。
做一些类似的事情
Main.class.getResource("images/pic.png")
你可以在这里找到更多关于static
的信息
静态关键字表示函数"main"在这种情况下绑定到类本身,因此您不能调用像"getClass()
"这样的非静态方法,因为这与说"this.getClass()
"相同,但this
不能引用任何对象,因为您在静态方法中调用getClass
。因此,为什么必须在静态方法中引用类本身,称为MainClass.class.getResource()