小编xan*_*291的帖子

我怎样才能抑制匿名新的runnable()可以替换为lambda

我得到了"匿名新的runnable()可以替换为lambda"警告与以下代码.

final ScrollView sv = (ScrollView) findViewById(R.id.scrollView);
sv.post(new Runnable() {

    @Override
    public void run() {
        sv.fullScroll(ScrollView.FOCUS_DOWN);
    }
});
Run Code Online (Sandbox Code Playgroud)

我非常努力地在Google上搜索,似乎是使用lambda表达式重写...

final ScrollView sv = (ScrollView) findViewById(R.id.scrollView);
Runnable test = () -> sv.fullScroll(ScrollView.FOCUS_DOWN);
test.run();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行应用程序时,Android Studio会因错误而停止,如下所示:

Error:(78, 40) error: lambda expressions are not supported in -source 1.7
(use -source 8 or higher to enable lambda expressions)
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么Android Studio让我使用lambda表达式,即使它无法编译.这是一个错误吗?

此外,我尝试使用gradle-retrolambda,但它很难用于biginner.

由于我无法编译我的代码,我不确定上述lambda expresssion是否正确.

在我看来,IDE不应该抱怨代码无法编译.所以我认为应该抑制使用lambda表达式的警告.但我不知道怎么会......

任何帮助表示赞赏.

java lambda android java-8

8
推荐指数
2
解决办法
5140
查看次数

带有switch case语句的Android Studio 1.1警告

我有一个分支,它将系统星期几整数值替换为人类可读的字符串值.

当我使用如下所示的if-else语句时,Android Studio 1.1不会发出任何警告.

int intDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
String curStrDayOfWeek = "";
if (intDayOfWeek == 1) {
    curStrDayOfWeek = getResources().getString(R.string.sunday);
}
else if(intDayOfWeek == 2) {
    curStrDayOfWeek = getResources().getString(R.string.monday);
}
else if(intDayOfWeek == 3) {
    curStrDayOfWeek = getResources().getString(R.string.tuesday);
}
[SNIP]

globals = (Globals) this.getApplication();

try {
    [SNIP]
    globals.hdsr_data.put("currentDayOfWeek", curStrDayOfWeek);
    [SNIP]
catch (Exception e) {
        System.out.println("Error:" + e);
    }
   [SNIP]
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用如下所示的switch-case语句,它会警告值getResources().从不使用分配给curStrDayOfWeek的getString(R.string.sunday).然后我得到了6个警告,因为值有7个分支.

int intDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
switch (intDayOfWeek) {
    case 1 : curStrDayOfWeek = getResources().getString(R.string.sunday);
    case 2 : curStrDayOfWeek = getResources().getString(R.string.monday);
    case …
Run Code Online (Sandbox Code Playgroud)

java android android-studio

4
推荐指数
1
解决办法
2901
查看次数

在 OS X 上卸载所有外部驱动器的命令行

我正在尝试编写一个 shell 脚本来卸载/挂载 OS X 上的所有外部驱动器。

我的磁盘列表如下:

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage                         499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *496.3 GB   disk1
                                 Logical Volume on disk0s2
                                 AE949253-803C-49DC-93EA-7DFC74C2EAA2
                                 Unencrypted
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Time Machine            999.9 …
Run Code Online (Sandbox Code Playgroud)

macos shell disk

1
推荐指数
1
解决办法
1920
查看次数

标签 统计

android ×2

java ×2

android-studio ×1

disk ×1

java-8 ×1

lambda ×1

macos ×1

shell ×1