, , . groovy ( ..), / .
, groovy groovy :
def list = [5, 7, 3]
// no type checking by default, so generics types does not matter due to type erasure
[...]
:
List list = new ArrayList();
list.add(5);
list.add(7);
list.add(3);
System.out.println(list.contains(5));
System.out.println(list.contains(5L));
[...]
java ( -Xlint), .
groovy 2.0 / @groovy.transform.TypeChecked/@groovy.transform.CompileStatic ( ):
@groovy.transform.CompileStatic
class Test {
static main(args) {
List<Long> list = [5, 7, 3]
println (5 in list)
println (5L in list)
int i = 5
long l = 5
println (i in list)
println (l in list)
Integer i2 = 5
Long l2 = new Long(5)
println (i2 in list)
println (l2 in list)
}
}
, :
[Static type checking] - Incompatible generic argument types. Cannot assign java.util.List <java.lang.Integer> to: java.util.List <Long>