【发布时间】:2013-09-17 16:43:25
【问题描述】:
我有一个名为 sagum 的类,它有一个名为paint的方法
public void paint(Graphics g) {
int[] apw1 = null;
int n1 = 0;
for (int j = 1; j <= n1; j++) {
g.drawRect(50, 50, (apw1[j] * 20), 30);
String[] p = null;
g.drawString("p" + p[j - 1], (55 + (apw1[j - 1] * 20)), 70);
g.drawString("" + apw1[j - 1], 50 + (apw1[j - 1] * 20), 100);
}
g.drawString("" + apw1[n1], 50 + (apw1[n1] * 20), 100);
}
我想叫它
n1=count+1;
paint(g);
我得到一个错误
non-static method paint(Graphics) cannot be referenced from a static context
我只是在执行方法后尝试调用它来执行我的方法的图形应用程序(调度算法)。
请帮忙
【问题讨论】:
-
我没有任何静态上下文
-
包含你的代码
n1=count+1; paint(g);的方法是静态的吗? -
调用
paint(g)的代码在哪里?那是您的静态上下文。请注意,如果您确实设法调用了paint方法,它不会做任何您想做的事情。循环体根本不会执行,因为n1为 0,j从 1 开始,但最后一行将生成一个NullPointerException,因为apw1是null。 -
不只是写
paint(g),而是写this.paint(g),这是它隐含的调用。那么问题出在哪里应该会更明显。你应该问问自己,this是什么?对象在哪里?例如,如果你在 main 中,你会意识到,“哦!我从来没有创建过这种类型的对象,是吗?”
标签: java algorithm compiler-construction static compiler-errors