为什么需要java静态方法
我使用eclipse作为java的IDE为什么需要java静态方法,java,static-methods,Java,Static Methods,我使用eclipse作为java的IDE 我编写了以下代码,但在loadStrade()上有一个错误。Eclipse建议我将loadStrade从public void更改为public static,我不明白为什么? 我寻找过类似的问题,也发现了一些类似的问题,但我仍然不明白为什么我必须将方法更改为静态。Uffa 在代码中,RouteNet是一个图形(jgraphT),loadStrade()用于填充顶点和边。 我能帮忙吗。谢谢,法布里齐奥 public class GestioneStrad
我编写了以下代码,但在
loadStrade()
上有一个错误。Eclipse建议我将loadStrade
从public void
更改为public static
,我不明白为什么?我寻找过类似的问题,也发现了一些类似的问题,但我仍然不明白为什么我必须将方法更改为静态。Uffa 在代码中,RouteNet是一个图形(jgraphT),loadStrade()用于填充顶点和边。
我能帮忙吗。谢谢,法布里齐奥
public class GestioneStrade {
private Stradario routesNet;
public static void main(String[] args) {
/*
* Instantiate Stradario and fill it with routes and cross
*
*/
GestioneStrade m = new GestioneStrade(); //istance of gestionestrade ok?
// now I set new routesNet
m.setRoutesNet(new Stradario());
loadStrade(m.getRoutesNet()); // why loadStrade must be static :-(
}
public Stradario getRoutesNet() {
return routesNet;
}
public void setRoutesNet(Stradario routesNet) {
this.routesNet = routesNet;
}
public void loadStrade(Stradario str) {
// some code to fill routesNet
}
在“main”中,您应该替换
loadStrade(m.getRoutesNet());
到
并将loadStrade保留为非静态。您正在从静态上下文调用该方法(静态方法
main
)。使方法成为静态的
,或者对GestioneStrade
的实例调用该方法,例如m.loadStrade(m.getRoutesNet())
这个类是嵌套的类吗?注意:它并没有告诉您将公共无效
更改为公共静态
,而是更改为公共静态无效
:您仍然需要一个返回类型。请参见。您的方法是否包含在类中?或者(/和)更改loadStrade
,以便它根本不接受参数,让它调用自己的getRoutesNet()
方法。非常感谢你,现在我明白了。作为一名java初学者,像这样的问题需要花费我很多时间才能解决。
m.loadStrade(m.getRoutesNet());