java - 我正在关注 youtube 教程,现在我遇到了问题,因为我想在 List 中返回,但它显示错误。我不明白错误
问题描述
我UserDetails
在类中实现接口,CustomUserDetails
我添加了所有方法,在public Collection<? extends GrantedAuthority> getAuthorities()
方法中我遇到了问题。
我不明白这个问题,在教程中它工作正常,在 youtube 教程视频中没有错误。
返回 List.of(simpleGrantedAuthority); 中发生错误
package com.anurag.config;
import java.util.Collection;
import java.util.List;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import com.anurag.entities.User;
public class CustomUserDetails implements UserDetails {
private User user;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority(user.getRole());
return List.of(simpleGrantedAuthority);
}
@Override
public String getPassword() {
return user.getPassword();
}
@Override
public String getUsername() {
return user.getEmail();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
解决方案
编辑 1
根据托马斯的评论:
List.of() 方法是在 Java 9 中添加的,但您使用的是 Java 1.8。
我的工作实施getAuthorities()
:
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Collections.singleton(new SimpleGrantedAuthority(user.getRole()));
}
此错误仅由 Eclipse 显示还是在启动您的应用程序时也显示?