Java 编译错误:"'<&燃气轮机';不能与匿名类一起使用“;
我很想写这封信:Java 编译错误:"'<&燃气轮机';不能与匿名类一起使用“;,java,java-7,Java,Java 7,我很想写这封信: Lists.transform(vals, new Function<>() { public List<ValEntry> apply(Validator<? super T> input) { return input.validate(value); } }); list.transform(VAL, 新函数(){ 公共列表适用(验证人根据: 在内部,Java编译
Lists.transform(vals,
new Function<>() {
public List<ValEntry> apply(Validator<? super T> input) {
return input.validate(value);
}
});
list.transform(VAL,
新函数(){
公共列表适用(验证人根据:
在内部,Java编译器操作的类型集比
可以在Java程序中显式写入的
不能在Java程序中编写的编译器内部类型包括
称为非可表示类型。非可表示类型可以作为
由diamond使用的推断结果。因此,使用带有
不支持匿名内部类,因为通常这样做
需要对类文件签名属性进行扩展才能
表示不可表示的类型,这是事实上的JVM更改。这是可行的
未来的平台版本允许在创建时使用diamond
一个匿名的内部类,只要推断的类型是可表示的
编辑
因此,在未来的版本中,这是可能的。Java 8仍然不可能实现,但现在我们有了lambdas,因此不太需要它。现在计划将其包含在Java 9中。从:
。因为使用diamond和匿名类构造函数的推断类型可能在签名属性支持的类型集之外,所以在Java SE 7中不允许使用diamond和匿名类。正如JSR 334建议的最终草案中所述,如果推断类型是可指示的,则可以减轻此限制
不要与Java抗争,最好与Scala共舞……有时候在生活中,你别无选择,只能与之抗争。我不记得Java被设计成一种函数语言a现在是Project Coin的一部分。但自从lambda表达式的引入以来,对我来说似乎没有什么意义。感谢你的研究。泛型和类型推断的内部是int正在进行但很复杂的操作。我仍然不明白。为什么在构造函数调用中添加一个类主体会使菱形操作符无法推断类型参数?ArrayList a=new ArrayList();
是合法的,但是ArrayList a=new arrarylist(){};
不是。类型参数很明显是字符串
。为什么匿名类型的类文件不能这样说呢?对于java 8仍然不可能
Lists.transform(vals,
new Function<Validator<? super T>, List<ValEntry>>() {
public List<ValEntry> apply(Validator<? super T> input) {
return input.validate( value );
}
});
'<>' cannot be used with anonymous classes