2017-01-05 12 views
-1

私はjavaのIDEとしてEclipseを使用しています。
次のコードを書きましたが、loadStrade()に1つのエラーがあります。 Eclipseは私にloadStradepublic voidからpublic staticに変更するよう提案しましたが、なぜそれが分かりませんか?
私は似たような問題を探しましたが、私のようないくつかの問題を発見しましたが、方法を静的に変更しなければならない理由はまだ分かりません。 Uffa!java静的メソッドなぜ必要です

このコードでは、routesNetはグラフ(jgraphT)であり、loadStrade()は頂点とエッジを設定するために使用されます。
私は助けてもらえますか?おかげで、ファブリツィオあなたは

m.loadStrade(m.getRoutesNet()); 

loadStrade(m.getRoutesNet()); 

を交換し、非静的として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 

} 
+1

メソッドを静的コンテキスト(静的メソッド 'main')から呼び出しています。メソッドを静的にするか、 'GestioneStrade'のインスタンスでメソッドを呼び出します。たとえば、' m.loadStrade(m.getRoutesNet()); ' – Berger

+0

このクラスは '入れ子クラスですか? – ImAtWar

+0

注: 'public void'を' public static'に変更するよう言っているわけではありません。 'public static void'になります。あなたはまだ戻り型が必要です。 –

答えて

1

+0

または(および/または) 'loadStrade'を変更して、パラメータをまったく使用せず、独自の' getRoutesNet() 'メソッドを呼び出させます。 –

+0

あなたを非常に傷つける、今私には明らかです。 Javaの初心者の方は、このようなことを解決するために多くの時間を要します。 –

関連する問題