java else报错_java – 使用orElseThrow时出现循环接口错误

使用

Guava's ClassPath我试图初始化位于特定包中的类,但我想使用构造函数进行初始化,因为它不会传播异常.所以这就是我为获得构造函数而设计的:

ClassPath.from(classLoader).getTopLevelClasses("test.package").stream()

.map(ClassPath.ClassInfo::load)

.map(Class::getConstructors)

.map(Arrays::stream)

.map(constructorStream -> constructorStream

.filter(constructor -> constructor.getParameterCount() == 0)

.findAny()

.orElseThrow(RuntimeException::new)

);

但是,这只会在简单地说明循环接口时在InteliJ中出错.我想我知道Cyclic接口是什么,但我不确定为什么会导致这个错误.据我所知,只要返回类型是已知的(对于orElseThrow,它在这种情况下它的返回值为Constructor)然后抛出未经检查的异常应该没问题.如果我使用orElse(null),则错误消失.这里发生了什么以及如何抛出我想抛出的RuntimeException?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值