2016-07-06 7 views
0

パラメータとしてdouble定数をハッシュマップに渡す際に問題があります。次の出力で変数をパラメータとしてハッシュマップに渡す問題

public static final double Apple_Initial_Value = 30.0; 
private static HashMap<String, Double> base_values = new HashMap<String, Double>() {{ 

    put("Apple", Apple_Initial_Value); 
}}; 
System.out.println(base_values.get("Apple")); 

結果:しかし

0.0 

、次の出力で

public static final double Apple_Initial_Value = 30.0; 
private static HashMap<String, Double> base_values = new HashMap<String, Double>() {{ 

    put("Apple", 30.0); 
}}; 
System.out.println(base_values.get("Apple")); 

結果:

30.0 

ちょうどCでコースを終えました、私の心はそれに飛びついた参照渡しと値渡しの問題のいくつかの並べ替えの種類が、私はそれを理解するように、Javaは値渡しだけで、私は迷っています。

よろしくお願いいたします。

編集:私の謝罪、上記のコードは実際には私のコードで実際に起こっていることを示すものではありません。具体的には、状況はIR.javaとMain.javaの2つのクラスに分かれています。 IR.javaの関連部分は次のようになります。

public class IR { 

    public static final double Apple_Initial_Value = 30; 
    public static HashMap<String, Double> base_values = new HashMap<String, Double>() {{ 

     put("Apple", Apple_Initial_Value); 

    }}; 

    public static double get(String item) { 
     double value = (double) base_values.get(item); 
     return value; 
    } 
} 

そしてMain.javaの関連部分は次のようになります。

public static void main(String[] args) { 
    final double Apple_Initial_Value = 30.0; 
    HashMap<String, Double> base_values = new HashMap<String, Double>() {{ 

     put("Apple", Apple_Initial_Value); 
    }}; 
    System.out.println(base_values.get("Apple")); 

} 

public class Main { 

    public static void main(String[] args) { 

     System.out.println(IR.get("Apple")); 
    } 
} 
+3

私は[30.0](http://ideone.com/x1QNpF) – SomeDude

+0

を取得します。変数の静的識別子を削除してもそれはまだ起こっていますか? –

+0

私が上に掲載したコード断片は、元々機能しているコードです。うわー!私は、何かが正しく動作していないことを示すために必要なコード断片を元の投稿に編集しました。 – Overdogg

答えて

-1

あなたはこのように試すことができます新しいコードの更新: 変数名はincorectです。 put文の中だけで簡単な変更を:

put("Apple", Apple_Pie_Initial_Value); 
0

私は誤ってそれが私が質問を投稿する場合、私のソースコード中にもともと存在していなかったタイプミスを追加することで働かせたとして編集は、完全に有効である後に上記のコード(その数字)。

public static Apple_Initial_Value = 50; 

が、作業コードではなくて、それを宣言します:私のソースコードは、次のようなApple_Initial_Valueを宣言

public static final Apple_Initial_Value = 50; 
野生のガチョウの追跡であなたのすべてを導くため申し訳ありません

、そして非常にお時間をありがとう!

自分自身の例を挙げると、コードを含む質問を投稿する前に、新しいポスターをhttps://stackoverflow.com/help/mcveに読んで、Minimal、Complete、Verifiableの例を作成する方法を教えてください。

関連する問題