![](/img/trans.png)
[英]Calling non-static method in static method in Java (Non-Static Variable Error)
[英]calling non-static method without instance variable
我试图找出下面的代码。 ImageIcone
根据Java API称为“非静态方法” getImage()
,没有任何实例变量:
public void paintComponent(Graphics g) {
Image img = new ImageIcon("imgtest.jpg", "description...").getImage();
g.drawImage(img,3,4,this);
}
这个
new ImageIcon("imgtest.jpg", "description...")
创建一个实例。 在该实例上调用getImage()
方法,然后对该实例的所有引用都会丢失。 如果该对象不可访问,则可以对其进行垃圾回收。
请记住,调用实例方法所需要做的只是一个解析为对象引用的表达式。 引用类型的变量就是这样一个表达式。 构造函数调用是另一个这样的表达。 具有某种引用类型的返回类型的方法的调用也就是这样的表达式。
您不需要“实例变量” 。 您只需要一个实例 , new ImageIcon("imgtest.jpg", "description...")
是该实例。
在您的代码中,您正在使用代码new ImageIcon("imgtest.jpg", "description...")
创建ImageIcon类的匿名对象。 由于您将来将不再使用该对象,因此您选择创建一个匿名对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.