增强java中的空解引用

wlzqhblo  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(367)

我得到了强化结果,我得到了一个空的解引用。我想我知道为什么我会得到它,只是想知道什么是解决这个问题的最好方法。以下是一段代码片段:

public class Example{
    private Collection<Auth> Authorities;
    public Example(SomeUser user){
        for(String role: user.getAuth()){ //This is where Fortify gives me a null dereference
            Authorities.add(new Auth(role));
        }
    }

    private List<String> getAuth(){
        return null;
    }
}
krcsximq

krcsximq1#

getAuth() 不应该回来 null . 返回 List 按照惯例应该永远不会回来吗 null 但是一个空列表作为默认的“空”值。

private List<String> getAuth(){
    return new ArrayList<>();
}
``` `java.util.Collections.emptyList()` 仅当您确定方法的每个调用方都没有更改列表(不尝试添加任何项)时,才应使用,因为这将在此不可修改的列表上失败。只需迭代列表即可。
如果可以保证这一点,那么空列表就更好了,因为它不会一直创建新对象。

相关问题