我在groovy中有以下代码:
class Test {
List<Integer> yo(boolean x) {
List<Integer> res = x ? [] : [1, 2, 3]
}
}
它很好地编译,直到我向类中添加@CompileStatic
注释。然后编译失败,
Test.groovy: 5: [Static type checking] - Incompatible generic argument types. Cannot assign java.util.List <? extends java.lang.Object> to: java.util.List <Integer>
@ line 5, column 27.
List<Integer> res = x ? [] : [1, 2, 3]
是否真的希望Groovy无法推断出该空列表[]
的泛型类型?
答案 0 :(得分:0)
我建议你根本不要使用泛型。对我而言,它就像那样编译并运行良好:
List res = x ? [] : [1, 2, 3]
但如果您仍然非常需要仿制药,请尝试以下方法:
List<Integer> res = x ? [] as List<Integer> : [1, 2, 3]