lambda no instance(s) of type variable(s) T exist so that void conforms to R

代码如下出现标题报错

      List<String> days = DateUtils.getDays(t.getStartTime(), t.getEndTime());       
       days.stream().map(v->
            System.out.println(v)

        );

改成如下两种方式都是可以的

   days.stream().forEach(v->
            System.out.println(v)
        );

        days.stream().map(v->{
                System.out.println(v);
                return  "123";
            }
        );

因为map的传参看下

<R> Stream<R> map(Function<? super T, ? extends R> mapper);

是要一个返回值R的

 所以报如下错误 no instance(s) of type variable(s) T exist so that void conforms to R

再看写的两个例子

第1种写法貌似没有返回值啊 (第2个有)

点进去看看第一个调用看看

是有返回值的 只是是 

CompletableFuture<Void> 这种空结构而已。
这个错误通常是由于在使用Spring Security配置用户认证时,未正确实现UserDetailsService接口导致的。UserDetailsService是Spring Security提供的用于进行用户认证的接口,需要开发者自行实现该接口的方法来完成用户信息的加载和认证。 在实现UserDetailsService接口时,需要注意以下几点: 1. 实现`loadUserByUsername(String username)`方法,该方法用于根据用户名加载用户信息,通常返回一个UserDetails对象。 2. UserDetails对象是Spring Security提供的用于封装用户信息的接口,需要开发者根据自己的需求实现该接口。通常情况下,可以使用Spring Security提供的User类来实现该接口。 3. 在实现UserDetailsService接口的类上,需要添加@Service注解,以便Spring能够自动扫描并将其注入到其他组件中。 例如: ```java @Service public class MyUserDetailsService implements UserDetailsService { @Autowired private UserInfoService userInfoService; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { UserInfo userInfo = userInfoService.getUserInfoByUsername(username); if (userInfo == null) { throw new UsernameNotFoundException("User not found with username: " + username); } return new User(userInfo.getUsername(), userInfo.getPassword(), getAuthorities(userInfo)); } private Collection<? extends GrantedAuthority> getAuthorities(UserInfo userInfo) { Set<String> roles = userInfo.getRoles(); List<SimpleGrantedAuthority> authorities = new ArrayList<>(); for (String role : roles) { authorities.add(new SimpleGrantedAuthority(role)); } return authorities; } } ``` 在上述示例中,我们实现了`loadUserByUsername(String username)`方法,并使用@Autowired注解注入了UserInfoService组件。在该方法中,我们根据用户名查询用户信息,并将其封装为UserDetails对象。getAuthorities()方法用于获取用户的角色信息,并将其转换为GrantedAuthority对象的集合,用于在后续的授权操作中使用。最后,在该类上添加@Service注解,以便Spring能够对其进行自动注入。 需要注意的是,如果您的UserInfoService没有实现UserDetailsService接口,那么需要在MyUserDetailsService中进行适当的转换,以确保UserInfoService的返回结果能够正确地转换为UserDetails对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值