问题是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 – 如何声明一个函数参数来接受抛出的函数?相关推荐

  1. Java:异常的概念及分类、异常的处理、异常抛出及自定义异常

    异常概念 异常分类   Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念         什么是异常?             ...

  2. java怎么申请变量_java怎么声明变量

    在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式. double salary; int age; Bo ...

  3. java 停止一个线程_Java如何停止一个线程

    线程正常执行完毕,正常结束. 2.监视某些条件,直到某些条件成立,结束线程. class TestMyThread extends Thread { private volatile boolean ...

  4. java老鸟123怎么样_java入门123——一个老鸟的java学习心得.doc

    java入门123--一个老鸟的java学习心得 java入门123--一个老鸟的java学习心得 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心 ...

  5. java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...

    我在一个Activity中有以下功能 public void AppExit() { Editor edit = preferences.edit(); edit.putString("pr ...

  6. java访问同一个变量_java – 从另一个类访问变量

    很简单的问题,但我不能这样做.我有3个班: DrawCircle类 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...

  7. Java报告比较日期_Java程序如果一个日期在另一个日期之后比较日期

    如果某个日期在另一个日期之后,则要比较日期,请使用Calendar.after()方法. Calendar.after()方法返回此Calendar的时间是否晚于指定Object表示的时间.首先,让我 ...

  8. java复制文件夹_java实现拷贝一个文件夹,里面存在目录和文件,使用文件创建和文件流...

    内容我都在注释里说明了,有什么不懂的可以问我.主要是为了回顾下文件的创建和文件流的读写,所以写了这个拷贝的代码,还可以添加很多功能,像拷贝哪个文件到哪都是可以改个,可以用scanner输入,还有就是可 ...

  9. java季度第一天_Java得到年在一个季度的错误的第一天

    1.错误叙述性说明 Exception in thread "main" java.lang.IllegalArgumentException: Cannot format giv ...

最新文章

  1. ashx导出dataTable为Excel
  2. es搜索引擎架构_学弟想学搜索引擎,我把珍藏的京东架构师的ES笔记分享给了他...
  3. JavaScript基础学习3
  4. 贝叶斯推断及其互联网应用(一):定理简介
  5. phing用户手册第四章Getting Started译文
  6. 密钥登陆Linux服务器
  7. 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
  8. 文档上传到服务器上,将文件上传到服务器上
  9. java dispose null_Java Map释放内存置null以及调用clear()的区别
  10. 哪种linux好,哪种LINUX好用
  11. 【TSP】基于matlab人工鱼群算法求解旅行商问题【含Matlab源码 422期】
  12. 强行结束进程命令ntsd
  13. 车站计算机系统sc英文,【地铁小百科】自动售检票系统概述
  14. 抗衰落技术 — Rake接收和发射分集
  15. 机器学习数据的划分和介绍
  16. 深度学习:行为识别综述
  17. kotlin-协成同步
  18. 【DL】第 6 章:文本生成转换器
  19. java修改文件一行_java替换文件中某一行文本的内容
  20. Matlab入门-01命令行操作

热门文章

  1. java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
  2. Vue + Spring Boot 学习笔记01:实现用户登录功能
  3. VB讲课笔记01:VB6.0安装与启动
  4. 利用R和Octave绘制函数图像和求解方程
  5. english 2012020601
  6. mysql 空字符串_NULL与MySQL空字符串的区别
  7. 2017.10.7 弹飞绵羊 思考记录
  8. 2017.5.11 道路修建 思考记录
  9. word回车后间距太大_关于Word自动编号你知道多少?
  10. 【英语学习】【WOTD】comminute 释义/词源/示例