【发布时间】:2015-08-28 00:30:20
【问题描述】:
我收到了“可以用 lambda 替换匿名新的 runnable()”警告,并使用以下代码。
final ScrollView sv = (ScrollView) findViewById(R.id.scrollView);
sv.post(new Runnable() {
@Override
public void run() {
sv.fullScroll(ScrollView.FOCUS_DOWN);
}
});
我在谷歌上搜索得很辛苦,似乎是用 lambda 表达式重写...
final ScrollView sv = (ScrollView) findViewById(R.id.scrollView);
Runnable test = () -> sv.fullScroll(ScrollView.FOCUS_DOWN);
test.run();
但是当我尝试运行应用程序时,Android Studio 停止并出现如下错误:
Error:(78, 40) error: lambda expressions are not supported in -source 1.7
(use -source 8 or higher to enable lambda expressions)
我不明白为什么 Android Studio 让我使用 lambda 表达式,即使它无法编译。是bug吗?
另外,我尝试使用gradle-retrolambda,但它很难用于biginner。
由于我无法编译我的代码,我不确定上面的 lambda 表达式是否正确。
在我看来,IDE 不应该抱怨代码无法编译。所以我认为应该禁止使用 lambda 表达式的警告。但是不知道怎么可能……
感谢任何帮助。
【问题讨论】:
-
您使用哪个版本的 Android Studio?
-
我用的是Ver.1.2.2最新版。
标签: java android lambda java-8