Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与Collections.emptyList()相比,Collections.EMPTY_列表**是否可以失败**?_Java_Empty List - Fatal编程技术网

Java 与Collections.emptyList()相比,Collections.EMPTY_列表**是否可以失败**?

Java 与Collections.emptyList()相比,Collections.EMPTY_列表**是否可以失败**?,java,empty-list,Java,Empty List,我知道以前也有人问过类似的问题,但我没有找到任何解释来解释为什么该方法提供的类型安全性在一个空的不可变列表中很重要 尽管我总是试图保持类型/泛型的正确性,但我希望了解使用常量会导致错误的实际情况,该方法可以防止这种错误 我发现最糟糕的结果是,该方法避免了警告,但在其他方面,它只是避免了警告,根据我的理解,这在实践中并没有什么大不了的:虽然我不知道JVM中的确切区别,但我大致知道泛型是在编译时使用的,然后类型被删除并替换为强制类型转换 因此,总结一下,任何空列表是个坏主意的例子TM?你是对的,使用

我知道以前也有人问过类似的问题,但我没有找到任何解释来解释为什么该方法提供的类型安全性在一个空的不可变列表中很重要

尽管我总是试图保持类型/泛型的正确性,但我希望了解使用常量会导致错误的实际情况,该方法可以防止这种错误

我发现最糟糕的结果是,该方法避免了警告,但在其他方面,它只是避免了警告,根据我的理解,这在实践中并没有什么大不了的:虽然我不知道JVM中的确切区别,但我大致知道泛型是在编译时使用的,然后类型被删除并替换为强制类型转换


因此,总结一下,任何空列表是个坏主意的例子TM?

你是对的,使用空列表本身没有风险。然而,你会得到一个警告。忽视警告是一种风险,因为有一天你肯定会忽视一个不应该被忽视的警告

您可以@SuppressWarnings,但是您可以将注释放在方法甚至类上,然后返回到第一点

或者创建局部变量并对其进行注释。这太冗长了

或者创建一个返回字段并对其进行注释的小方法。猜猜Collections.emptyList做了什么