如何解决"cannot make a static reference to the non-static method"?



我对"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()

相关内容

最新更新