method-reference相关内容

java中的方法参考

我正在探索java中的方法引用,并且好奇是否可以将以下内容转换为方法引用 List new SomeClass(item).someMethod(item)); 我尝试了以下操作,但这不起作用 list.forEach(S ..
发布时间:2019-01-09 20:09:27 Java开发

使用函数引用在Kotlin中重写Java代码发生SAM类型冲突

我有一个使用方法引用的Java代码示例,我想将其重写为Kotlin。 Java版本使用方法参考,解决方案简短明了。但另一方面,我不能在Kotlin中使用方法参考。我设法编写的唯一版本如下所示。它似乎是 Function3 {s:String,b:Boolean,i:Int - >组合(s,b,i)} 可以用更干净的方式编写(如果可能的方法参考将是完美的)。 我是Kotlin新手,所以我会感激 ..
发布时间:2019-01-02 21:45:51 Java开发

为什么方法引用ctor“throws”? ......也扔?

我正在寻找一种优雅的方式来创建依赖注入工厂。在我的例子中,工厂只需调用一个参数构造函数。我发现这个答案概述了如何使用功能 出于这样的目的。 但我的问题是:在我的情况下,我的ctor宣布抛出一些已检查的异常。 我没有得到:使用对该构造函数的方法引用创建 Function 不起作用。如: import java.util.functio ..
发布时间:2019-01-02 11:08:47 Java开发

如何获取类(Java)中所有方法的方法引用?

Java 8中特定方法的 方法参考可以作为 Class :: Method 获得。但是如何获取类的所有方法的方法引用? 所有需要的方法都有不同的方法名称,但相同的类型签名。此外,这些方法的名称在之前是未知。 示例: class Test { public static double op0(double a){...} public static double op1( ..
发布时间:2019-01-02 09:46:11 Java开发

具有不同arities的重载方法的方法引用无效

当尝试编译表达式 Comparator.comparing(String :: toLowerCase)时,Java编译器会返回错误。有关详细信息,请参阅以下问题: 为什么Comparator.comparing不能与String :: toLowerCase方法引用一起使用? 我试图尽可能地减少问题。特别是,我已经删除了几乎所有依赖项到其他类。 main 方法包含两个方法调用。第一个 ..
发布时间:2018-12-28 22:32:59 Java开发

Java 8中静态方法引用的限制

我正在尝试使用方法引用来捕获方法调用,并且遇到了一些限制。这很好用: void capture(函数 in){ } 私有接口Foo { String getBar(); } capture(Foo :: getBar); 但如果我将Foo.setBar的签名更改为以下内容: 私有接口Foo { void setBar(Str ..
发布时间:2018-12-28 22:12:09 Java开发

Java 8中方法引用的外部参数

我希望将外部参数传递给方法引用: 字符串前缀=“数字是:”; numbers.forEach(Main :: printWithPrefix); private static void printWithPrefix(整数){ System.out.println(number); } 我不知道如何做到这一点。我可以用lambda做到这一点: 字符串 ..
发布时间:2018-12-19 22:49:06 Java开发

引用特定对象的实例方法

在下面的代码中,它在使用类名传递方法引用变量时有效,但在使用用户对象传递引用变量时会出错。 public class User { private String name; public User(String name){ this.name = name; } public void printName(){ System.out.println(name); ..
发布时间:2018-12-11 23:43:47 Java开发

Java 8方法参考非静态方法

为什么这不起作用?我得到编译器错误“无法对非静态方法打印静态引用...” 公共类第3章{ public void print(String s){ System.out.println(s); } public static void main(String [] args){ Arrays.asList(“a”,“b”,“c”)。forEach(Chapter3 :: prin ..
发布时间:2018-12-11 21:46:04 Java开发

Java 8传递方法作为参数

目前进入Java 8 lambda表达式和方法引用。 我想传递一个没有args且没有返回值的方法作为另一个方法的参数。这就是我的做法: public void one(){ System.out.println(“one ()“); } public void pass(){ run(this :: one); } public void run(final函 ..
发布时间:2018-12-10 11:45:12 Java开发

多个lambda方法引用

可以链接/连接lambda表达式中的元素,如下所示: list.forEach(s - > { System.out.println(s.toLowerCase()); System.out.println(s.toUpperCase()); }); 有没有办法用方法参考做到这一点?这样的事情: list.forEach({ System.out :: ..
发布时间:2018-12-07 18:44:09 Java开发