java声明一个函数_java – 如何声明一个函数参数来接受抛出的函数?
问题是Java有
checked exceptions但Kotlin没有. requestFunc参数type() – >列表与LT;窗口小部件>将映射到功能接口
Function0>,但运算符
invoke不会在Kotlin代码中抛出已检查的异常.
因此,您无法在lambda表达式中调用getStaticWidgets(),因为它会抛出IOException,这是Java中的已检查异常.
由于您同时控制Kotlin和Java代码,最简单的解决方案是更改参数类型() – >列表与LT;窗口小部件>至Callable< List< Widget>>,例如:
// change the parameter type to `Callable` ---v
fun convertExceptionToEmpty(requestFunc: Callable>): Stream {
try {
// v--- get the `List` from `Callable`
return requestFunc.call().stream()
} catch (th: Throwable) {
return Stream.empty()
}
}
然后,您可以在Java8中进一步使用方法引用表达式,例如:
Stream widgets = convertExceptionToEmpty(this::getStaticWidgets);
//OR if `getStaticWidgets` is static `T` is the class belong to
// v
Stream widgets = convertExceptionToEmpty(T::getStaticWidgets);
java声明一个函数_java – 如何声明一个函数参数来接受抛出的函数?相关推荐
- Java:异常的概念及分类、异常的处理、异常抛出及自定义异常
异常概念 异常分类 Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念 什么是异常? ...
- java怎么申请变量_java怎么声明变量
在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式. double salary; int age; Bo ...
- java 停止一个线程_Java如何停止一个线程
线程正常执行完毕,正常结束. 2.监视某些条件,直到某些条件成立,结束线程. class TestMyThread extends Thread { private volatile boolean ...
- java老鸟123怎么样_java入门123——一个老鸟的java学习心得.doc
java入门123--一个老鸟的java学习心得 java入门123--一个老鸟的java学习心得 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心 ...
- java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...
我在一个Activity中有以下功能 public void AppExit() { Editor edit = preferences.edit(); edit.putString("pr ...
- java访问同一个变量_java – 从另一个类访问变量
很简单的问题,但我不能这样做.我有3个班: DrawCircle类 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...
- Java报告比较日期_Java程序如果一个日期在另一个日期之后比较日期
如果某个日期在另一个日期之后,则要比较日期,请使用Calendar.after()方法. Calendar.after()方法返回此Calendar的时间是否晚于指定Object表示的时间.首先,让我 ...
- java复制文件夹_java实现拷贝一个文件夹,里面存在目录和文件,使用文件创建和文件流...
内容我都在注释里说明了,有什么不懂的可以问我.主要是为了回顾下文件的创建和文件流的读写,所以写了这个拷贝的代码,还可以添加很多功能,像拷贝哪个文件到哪都是可以改个,可以用scanner输入,还有就是可 ...
- java季度第一天_Java得到年在一个季度的错误的第一天
1.错误叙述性说明 Exception in thread "main" java.lang.IllegalArgumentException: Cannot format giv ...
最新文章
- ashx导出dataTable为Excel
- es搜索引擎架构_学弟想学搜索引擎,我把珍藏的京东架构师的ES笔记分享给了他...
- JavaScript基础学习3
- 贝叶斯推断及其互联网应用(一):定理简介
- phing用户手册第四章Getting Started译文
- 密钥登陆Linux服务器
- 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
- 文档上传到服务器上,将文件上传到服务器上
- java dispose null_Java Map释放内存置null以及调用clear()的区别
- 哪种linux好,哪种LINUX好用
- 【TSP】基于matlab人工鱼群算法求解旅行商问题【含Matlab源码 422期】
- 强行结束进程命令ntsd
- 车站计算机系统sc英文,【地铁小百科】自动售检票系统概述
- 抗衰落技术 — Rake接收和发射分集
- 机器学习数据的划分和介绍
- 深度学习:行为识别综述
- kotlin-协成同步
- 【DL】第 6 章:文本生成转换器
- java修改文件一行_java替换文件中某一行文本的内容
- Matlab入门-01命令行操作
热门文章
- java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
- Vue + Spring Boot 学习笔记01:实现用户登录功能
- VB讲课笔记01:VB6.0安装与启动
- 利用R和Octave绘制函数图像和求解方程
- english 2012020601
- mysql 空字符串_NULL与MySQL空字符串的区别
- 2017.10.7 弹飞绵羊 思考记录
- 2017.5.11 道路修建 思考记录
- word回车后间距太大_关于Word自动编号你知道多少?
- 【英语学习】【WOTD】comminute 释义/词源/示例