可能重复:
“不能从静态上下文引用非静态方法”背后的原因是什么?
不能对非静态方法进行静态引用
不能对非静态字段进行静态引用
我不明白我的代码出了什么问题。
class Two {
public static void main(String[] args) {
int x = 0;
System.out.println("x = " + x);
x = fxn(x);
System.out.println("x = " + x);
}
int fxn(int y) {
y = 5;
return y;
}
}
线程“main”java.lang.error中的异常:未解决的编译问题:无法静态引用Two中的非静态方法fxn(int)
不能访问方法fxn,因为它不是静态的。静态方法只能直接访问其他静态方法。如果您想在您的主方法中使用fxn,您需要:
...
Two two = new Two();
x = two.fxn(x)
...
即创建一个双对象并调用该对象上的方法。
...或将fxn方法设置为静态。
由于main
方法是static
方法,而fxn()
方法不是,所以如果不首先创建two
对象,就不能调用该方法。因此,您可以将方法更改为:
public static int fxn(int y) {
y = 5;
return y;
}
或将main
中的代码更改为:
Two two = new Two();
x = two.fxn(x);
在Java教程中阅读关于static
的更多信息。
我试图在我的程序中使用accessors(Set/Get)方法,当我试图在main方法中使用Get方法时,我得到了以下错误: 无法从Student类型对非静态方法进行静态引用。 我不确定如何着手解决这个问题。我是Java编程的初学者。 以下是具体的问题: 设置/获取方法: 错误行: 任何建议都将不胜感激* 我的代码的完整图片。
问题内容: 我的Android程序中存在旧的“无法对非静态方法进行静态引用”错误,我遇到了一些问题。我正在创建一个掉落游戏(类似于Powder Game),并且创建了一个名为Control的类,以在屏幕底部创建一个带有画笔大小滑块(效果很好)的控件栏,并弹出一个按钮,允许用户选择所选元素的对话框。但是,当我从代码中调用DemoActivity.showDialog(2)时,它将静态引用非静态错误(
问题内容: 到目前为止,我有以下代码: } 当我尝试在末尾设置double 时,出现错误消息“无法对非静态方法进行静态引用”。它说解决方法是也使该方法静态化,但是我的教授告诉我不要将该字段静态化。有一个简单的解决方案我只是想念吗? 问题答案: 静态方法属于该类,非静态方法属于该类的 实例 。 当您从呼叫时,您会收到错误消息,因为它与任何实例都没有关联。 您需要创建该类的实例: 然后,您可以调用实例
我有一个类,其中有一些静态方法和一些非静态方法,所以当我试图从静态方法访问非静态方法时,我会遇到一个著名的错误。每当我搜索这个论坛,我得到的解决方案,当有两个类,从一个你试图达到另一个。我的问题是,如果它们在同一个类中,如何从静态方法调用非静态方法? 我试着用 但是我的方法包含发送Intent和finish(),所以如果我创建的对象不是finish,就不起作用。
我是Java和OOD的新手&一直在尝试为一个小的JDBC项目编写一些测试,但在让测试进入绿色光时遇到了一些问题。这就是我开始的地方,玩了很多次都没有效果。 下面是我的测试: 我的刀: 我的客户类:
问题内容: 我无法编译以下代码: 出现以下错误: 无法从静态内容引用非静态方法calcArea(int,int) 这是什么意思?我该如何解决该问题..? 编辑: 根据您的建议,我创建了一个新的test()实例,如下所示: 这样对吗?如果我这样做有什么区别… 问题答案: Nanne提出的建议绝对可以解决您的问题。但是,我认为如果现在就养成习惯,在学习Java的早期阶段,尝试尽可能少地使用静态方法(例