我之前已经知道类似的事情,但我没有找到任何解释,为什么类型安全(由方法提供)在空的不可变列表中很重要。
尽管我总是试图使类型/泛型正确,但我想了解使用常量时的实际情况会导致该方法会阻止的错误。
我发现最糟糕的结果是该方法避免了a compilation error in specific cases,但是它只是避免了警告,根据我的理解,这在实践中并不是一件大事:虽然我不知道JVM的确切区别,我非常清楚地知道在编译时使用了泛型,然后类型被删除并被强制替换。
那么,要结束,EMPTY_LIST是一个坏主意(TM)的任何例子?
答案 0 :(得分:1)
你是对的,没有使用EMPTY_LIST
本身的风险。但是,你会收到警告。忽略警告是一种风险,因为有一天你肯定会忽略一个不容忽视的警告。
您可以@SuppressWarnings
,但是您可以将注释放在方法(甚至是类)上,然后又回到第一点。
或者您创建一个局部变量并对其进行注释。这非常冗长。
或者你创建了一个返回字段的小方法并对其进行注释。猜猜Collections.emptyList()
做了什么。