java表达式的类型_java – 此表达式的目标类型必须是功能界面
这是编译器的一个角落.为了确定是否应用将参数包装到数组中或简单地传递数组,它需要知道最后一个参数的类型,然而,在lambda表达式的情况下,它需要调用方法签名来确定类型.但是很明显,应该发生什么,因为lambda表达式永远不会是数组类型,所以javac编译它没有问题.
一个可以接受的解决办法是超载方法:
@SafeVarargs
public static Stream filter(Stream source, Predicate... predicates) {
return source.filter(
Arrays.stream(predicates).reduce(predicates[0], Predicate::and));
}
public static Stream filter(Stream source, Predicate predicate) {
return source.filter(predicate);
}
这将是一个可以接受的解决方案,因为它不需要任何改变的呼叫方,同时提高单一案件的效率在同一时间.
请注意,您的varargs方法允许零参数,但如果以这种方式调用将失败.所以你应该添加另一个超负荷:
public static Stream filter(Stream source) {
return source;
}
或使方法对于零参数情况是安全的:
@SafeVarargs
public static Stream filter(Stream source, Predicate... predicates) {
return Arrays.stream(predicates).reduce(Predicate::and)
.map(source::filter).orElse(source);
}
java表达式的类型_java – 此表达式的目标类型必须是功能界面相关推荐
- Java 8新特性探究(6):泛型的目标类型推断
简单理解泛型 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.通俗点将就是"类型的变量".这种类型变量可以用在类.接口和方法 ...
- java常量表达式是什么_Java常量表达式和代码消除
如 here所述,javac和其他Java编译器可能为条件为 "Constant Expression"的if语句提供代码消除功能. 如果我的代码使用依赖于不同包中定义的其他常量表 ...
- java中输入char类型_java中如何输入char类型
java中基本数据类型的输入包括整形的输入:in.nextInt();单精度浮点型:in.nextFloat();双精度浮点型:in.nextDouble();字符串类型:in.next();in.n ...
- java八种语言_Java语言八种基本类型
Java语言八种基本类型 (2009-12-21 13:37:45) 标签: 杂谈 Java语言是一种严格的"类型化"语言.这意味着每个变量都必须有一个声明好的类型.Java语言提 ...
- java单精度实型_Java的八种基本类型及其各种数据类型的相互转换
一.八种基本类型 1.六种数字类型(四个整数型,两个浮点型) 字节型byte 8位-2^7到2^7短整型short 16位 整型int 32位 长整型long 64位 单精度float 32位 ...
- java timestamp是什么类型_JAVA比较2个Timestamp类型的时间大小-由此引发的思考
今天忽然要对2个Timestamp变量的类型进行比较.没怎么用过,百度发现居然很多都是转换类型的.后面发现Timestamp自己都有方法进行比较.但是百度一堆都是那些要转换类型的.我就想简单的知道2个 ...
- java协变返回类型_Java中的协变返回类型
java协变返回类型 协变返回类型 (Covariant return type) The covariant return type is that return type which may va ...
- java union pay 代码_Java标记了union / sum类型
使用一个私有构造函数创建一个抽象类,并在类中嵌套"数据构造函数"(左侧和右侧静态工厂方法),以便它们可以看到私有构造函数,但没有其他任何东西可以有效地密封类型. 使用抽象方法eit ...
- java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?
1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...
最新文章
- Python:爬虫框架Scrapy的安装与基本使用
- TIOBE 8 月编程语言:C、Java 差距拉大,R 语言盛行
- ntu part-time phd 信息整理
- Ansible Playbook详解
- Altium designer中提示some net were not able to be matched问题解决办法
- Matlab和C++混合编程
- 因吵架总被骂,阿里程序猿一气之下发明“情侣吵架神器”
- Linux下设置python脚本文件为服务
- 距离一个优秀程序员,你还差多少?
- 送书 |《Python大数据与机器学习实战》
- ubuntu 版mysql客户端工具_ubuntu安装mysql可视化工具MySQL-workbench及简单操作
- jdk15的安装与配置
- typeorm实战之findOne()方法
- 【扫盲】硬盘接口『 SATA 、 mSATA 、 m.2 ( NGFF )、PCI-E ( PICe 、 PCI Express ) 』及其协议 『 NVMe 、 AHCI 』
- 功能强大,颜值在线的个人笔记应用 - Notion
- 二层三层网络协议-网关
- 制度化规范化标准化精细化_何为规范化、标准化、精细化管理
- 关于SWOT,你了解多少?
- 本原多项式 M序列和AES不可约多项式
- 【CS224n】(assignment3)Dependency Parsing
热门文章
- vue页面锚文本_Vue如何实现锚点定位功能?
- easyui不同的jsp页面之间混乱_JSP+SSM+Mysql实现的图书馆预约占座管理系统
- ASTreeView 1.4.0发布(ASP.NET树控件)
- osg geometry清空vertex
- ADB工具 获取ROOT权限及复制文件方法
- 如何dos中查看当前MySQL版本信息?
- 修改eclipse中java和xml页面的字体的样式
- JSP Unable to compile class for JSP
- leetcode 70 python (动态规划)
- leetcode 1185 python