HashMaps をいじってみたところ、main() を持つクラスで HashMaps をインスタンス化すると、main を持たないクラスでインスタンス化すると動作が異なることに気付きました。
デモ.java
import java.util.HashMap;
public class Demo {
public static void main(String args[]) {
System.out.println(new Circle());
HashMap<String, Object> shapes = new HashMap<String,Object>();
shapes.put("Circle", new Circle());
}
}
GeometryObject.java
import java.util.HashMap;
abstract class GeometricObject
{
HashMap<String, Object> shapes = new HashMap<String,Object>(); //error
shapes.put("Circle", new Circle()); //error
}
main() を持たないクラスで HashMap を初期化する正しい方法は何ですか?