0

次のエラーが表示されます。

シンボル、シンボルが見つかりません: 変数の値、位置 Map< String,Double > 型の変数の惑星

この行でDouble[] Total = new Double [planet.values];

これが私のコードです:

public static void main(String[] args) {

    Map<String, Double> planet = new HashMap();

    Double Weight = 205.00;

    planet.put("Earth", 1.00);
    planet.put("Moon", .378);
    planet.put("Mercury", .166);
    planet.put("Jupiter", 2.364);
    planet.put("Venus", .907);
    planet.put("Uranus", .889);

    System.out.println("Amount of gravity on each planet: " + planet + "\n");  


    Double[] Total = new Double [planet.values];
    System.out.println(planet.values());
4

2 に答える 2

1

マップには、という名前のパブリックフィールドはありませんvalue。したがってplanet.value、無効です。マップのサイズと同じ長さの配列を初期化する場合は、次を使用しますsize()

Double[] total = new Double[planet.size()];

また、Javaの命名規則を尊重してください。変数は小文字で始まります。

于 2013-03-09T19:14:10.463 に答える
0

planet.values()'planet.values'の代わりに変更するだけで、メソッドを呼び出さずにフィールドにアクセスしようとしています。

したがって、これはあなたのコードになります:

Collection<Double> values = planet.values();
Double[] total = values.toArray(new Double[values.size()]);

ちなみに、配列のtoString()メソッドは値をレンダリングしません。コンソールに値を書き込みたい場合は、を使用してArrays.toString(array)ください。

于 2013-03-09T19:19:59.247 に答える