java静态方法为什么需要

时间:2017-01-05 09:54:04

标签: java static-methods

我使用eclipse作为Java的IDE。
我编写了以下代码,但我在loadStrade()上有一个错误。 Eclipse建议我将loadStradepublic void更改为public static,我不明白为什么?
我已经找到了类似的问题,我发现了一些像我这样的问题,但我仍然不明白为什么我必须将方法改为静态。 UFFA!

在代码中,routesNet是一个图形(jgraphT),而loadStrade()用于填充顶点和边缘。
我可以帮忙吗?谢谢,Fabrizio

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

}

1 个答案:

答案 0 :(得分:1)

" main"你应该替换

loadStrade(m.getRoutesNet());

m.loadStrade(m.getRoutesNet());

并将loadStrade保留为非静态。