method-reference相关内容

方法引用表达式为&Quot;Exact&Quot;的条件

考虑JLS的以下文章(§15.13.1) 如果以标识符结尾的方法引用表达式满足以下所有条件,则它是精确的: 如果方法引用表达式具有ReferenceType::[TypeArguments]标识符格式,则ReferenceType不表示原始类型。 要搜索的类型正好有一个成员方法,其名称标识符可由出现方法引用表达式的类或接口访问。 此方法不是变量(§8.4.1)。 如果此方法是泛型 ..
发布时间:2022-09-22 19:20:51 Java开发

Java 8方法参考使用示例

我正在执行一个示例,该示例从与下面提到的方法引用相关的当前目录中提取隐藏文件数组 使用匿名内部类实现 File[] hiddenFiles = new File(".").listFiles(new FileFilter() { public boolean accept(File file) { return file.isHidden(); ..
发布时间:2022-03-03 16:28:27 Java开发

Java 传递方法作为参数

我正在寻找一种通过引用传递方法的方法.我知道 Java 不会将方法作为参数传递,但是,我想找一个替代方案. 有人告诉我,接口是作为参数传递方法的替代方法,但我不明白接口如何通过引用充当方法.如果我理解正确,接口只是一组未定义的抽象方法.我不想发送一个每次都需要定义的接口,因为几个不同的方法可以调用相同的方法,但参数相同. 我想要完成的是类似这样的事情: public void set ..
发布时间:2022-01-30 09:38:17 Java开发

java 8中构造函数引用有什么用

我正在阅读有关 Java 8 功能的信息,这使我想到了这个 文章 ,我想知道构造函数引用的实际用途,我的意思是为什么不直接使用 new Obj ? P.S,我试过谷歌搜索,但我没有找到有意义的东西,如果有人有代码示例、链接或啧啧,那就太好了 解决方案 首先,你应该明白构造函数引用只是方法引用的一种特殊形式.方法引用的要点在于它们不调用被引用的方法,而是提供了一种定义函数的方法,该函数 ..
发布时间:2022-01-02 13:52:30 其他开发

可怕的表现&Java 8 构造函数引用的大堆内存占用?

我刚刚在我们的生产环境中遇到了相当不愉快的经历,导致 OutOfMemoryErrors: heapspace.. 我将问题追溯到我在函数中使用 ArrayList::new. 为了验证这实际上比通过声明的构造函数(t -> new ArrayList())创建的性能更差,我编写了以下小方法: public class TestMain {公共静态无效主(字符串 [] args) ..
发布时间:2021-12-28 09:09:35 Java开发

Java8中不同参数方法的引用

我想知道所有这些带有方法引用和功能接口的东西是如何在较低级别上工作的.最简单的例子是我们有一些 List Listlist = new ArrayList();list.add(“b");list.add(“a");list.add("c"): 现在我们想用 Collections 类对它进行排序,所以我们可以调用: Collections.sort(list, String::compar ..
发布时间:2021-12-28 08:59:15 Java开发

“特定类型的任意对象"是什么意思?在 Java 8 中是什么意思?

在 Java 8 中有“方法引用"功能.其中一种是“引用特定类型的任意对象的实例方法" http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html#type 有人能解释一下在这种情况下“特定类型的任意对象"是什么意思吗? 解决方案 它是对某种类型的实例方法的引用.在这个例子中,compareT ..
发布时间:2021-12-28 08:45:45 Java开发

为什么方法引用可以使用非最终变量?

我对内部类和 lambda 表达式有些困惑,我试着问一个 问题 ,但随后又出现了另一个疑问,与评论前一个问题相比,发布另一个问题可能更好. 直截了当:我知道(谢谢乔恩) 这样的东西不会编译 public class Main {公共静态无效主(字符串 [] args){一一=新一();F f = new F(){//1public void foo(){one.bar();}//编译错误} ..
发布时间:2021-12-23 21:59:02 Java开发

Java 8 链式方法参考?

假设有一个典型的 Java Bean: class MyBean {无效集A(字符串ID){}void setB(String id) {}列表获取列表(){}} 我想在 BiConsumer 的帮助下创建一种更抽象的调用 setter 的方法: Map>地图 = ...map.put(SomeEnum.A, MyBean::setA);map.put(SomeEnum.B, MyBean: ..
发布时间:2021-12-23 21:53:03 Java开发

实例方法参考和 Lambda 参数

我无法理解方法引用的语法,其中有两个参数 a 和 b,并且引用是对 a 的方法 在 b 上. 例如我了解如何 Arrays.sort(personArray,comparators::compareByName); 相当于 Arrays.sort(personArray, (o1, o2) -> comparers.compareByName(o1, o2)); 因为在这种情况下,l ..
发布时间:2021-12-23 21:48:16 Java开发

使用方法引用而不是 lambda 表达式抛出 java.lang.NullPointerException

我注意到有关使用 Java 8 方法引用的未处理异常的一些奇怪之处.这是我的代码,使用 lambda 表达式 () ->s.toLowerCase(): 公共类测试{公共静态无效主(字符串 [] args){测试NPE(空);}私有静态无效 testNPE(字符串 s){线程 t = new Thread(() -> s.toLowerCase());//线程 t = new Thread(s: ..
发布时间:2021-11-25 20:43:34 Java开发