java-oo
java-oo copied to clipboard
Bug when using OO out of a map
Thank you for making this brilliant plugin.
I've noticed a bug. Try the following code -- it claims to compile, but breaks class loading at runtime. This is using Java 7 on Ubuntu Linux.
Map<String, BigInteger> map = new HashMap<>();
map.put("a",BigInteger.valueOf(2));
BigInteger a2 = map["a"] * map["a"];
Note that if you add casts, e.g. BigInteger a2 = ((BigInteger)map["a"]) * ((BigInteger)map["a"]);
it works fine.
I get a similar problem when I have a Map<?, Integer>:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("str", 4);
if (map["str"] < 1) System.out.println(map["str"]);
This outputs "4" when it shouldn't, unless I cast map["str"] in the if expression to Integer or int explicitly. In other projects I get an "inconsistent stack map frames" error.