パラメータとして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"));
}
}
私は[30.0](http://ideone.com/x1QNpF) – SomeDude
を取得します。変数の静的識別子を削除してもそれはまだ起こっていますか? –
私が上に掲載したコード断片は、元々機能しているコードです。うわー!私は、何かが正しく動作していないことを示すために必要なコード断片を元の投稿に編集しました。 – Overdogg