我有一个类有一个方法(其中一半不使用他们的参数,因此将其命名为下划线),我只是切换到Java 8.现在我想用lambdas替换它们.
这是我的代码:
interface I { void stuffHappened(Integer howManyStuff); } public class A { void go() { I i = new I() { public void stuffHappened(Integer _) { System.out.println("woah!!"); } }; } }
之后:
interface I { void stuffHappened(Integer howManyStuff); } public class A { void go() { I i = _ -> System.out.println("woah!!"); } }
如您所见,它显然已不再有效,声称使用"_"作为参数名称不再有效.但那么为什么它首先允许这个重构呢?为什么它适用于匿名类,而不是lambdas?这真的是一个新规则吗?或者是IDEA中的某种差异?
我正在使用Intellij-IDEA(第一次使用它),实际上,Android Studio(Beta)0.8.1(使用retrolambda允许在Android上使用lambdas),我认为它使用IDEA.