Java 在Spring Security中将列表转换为集合

Java 在Spring Security中将列表转换为集合,java,spring-security,Java,Spring Security,我的情况是,我有一个方法,它接受集合,并将值作为列表 当我试图将列表值添加到集合参数中时,它不起作用,所以我应该强制转换它吗 更新: 当我尝试创建: new org.springframework.security.core.userdetails.User( user.getEmail(), user.getPassword(), true, true, true, true, user.getAuthorities()); 其

我的情况是,我有一个方法,它接受集合,并将值作为列表 当我试图将列表值添加到集合参数中时,它不起作用,所以我应该强制转换它吗

更新: 当我尝试创建:

new org.springframework.security.core.userdetails.User(
                user.getEmail(), user.getPassword(), true, true, true, true,
                user.getAuthorities());
其中user.getAuthories返回我定义的权限对象的arraylist

上面的代码给出了一个错误,即构造函数未定义,当我添加集合强制转换时,它工作正常

org.springframework.security.core.userdetails 类用户

建造师

列表已经是集合,因为它是集合的子接口

如果您有一个实现列表类型的变量,例如ArrayList,则可以在任何需要集合的地方使用它。不需要转换,甚至不需要显式类型转换

Collection<SomeClass> collection = list; //Where list is a List<SomeClass>

但是,列表已经是集合,因此实际上不需要转换。

告诉您最后一个参数必须是集合,这是什么意思?列表是一个集合。在任何可以使用Collection的地方,都应该可以使用List。为什么不向我们展示代码呢?您收到的错误消息是什么?“不起作用”太模糊。当我尝试在集合参数中使用list时,它不起作用。请看上面的代码。请看上面的代码。你是对的,我添加的是list而不是GrantedAuthority的列表,因此我必须按以下方式转换它:public collection setUserAuthorities list auths{List GrantedAuthories=new ArrayList;对于权限auth:auths GrantedAuthories.addnew GrantedAuthorityImplauth.getName;返回GrantedAuthories;}
Collection<SomeClass> collection = list; //Where list is a List<SomeClass>