问题标签 [method-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 是否可以通过方法引用传递参数?
我有以下代码行:
并在其中一种方法中:
现在importProducts
是没有参数的方法:
但是我现在需要为这个方法添加参数。
添加新参数后,行:
坏了。
有可能修复它吗?
java - Replace Lambdas with method reference.
Please help me to understand how to replace lambdas with method reference for the method below.
java - 有没有办法像使用消费者一样简单地使用 BiConsumers?
这只是一个理论问题,没有具体应用。
我有以下方法,我不会碰。它可以(如果可能的话)用作BiConsumer
.
如何as
在保持b
不变并使用this::doSmallThing
in的同时进行迭代doBigThing
?
当然,以下不起作用。
以下效果很好,实际上是我每天使用的。
以下也很好用,但有点棘手。
但是所有这些解决方案都没有得到Consumer
案例的简单性。那么有什么简单的存在BiConsumer
吗?
java - 扩展其他不能的功能接口 - 不能为其分配构造函数引用 - 是编译器错误吗?
在下面的简单代码中,我可以看到“工厂”接口,它们之间的唯一区别是Factory0Bad
扩展Supplier
:
所以这条线
被编译器(1.8.0u05)接受,但是这一行
不是。
为什么是这样?我在这里想念什么?它是javac中的错误吗?
java - 用于指定对泛型方法的方法引用的语法
我在“Java - 初学者指南”中阅读了以下代码
以下陈述有效
关于上述代码的解释,提出了两点
1 - 当泛型方法被指定为方法引用时,其类型参数
::
位于方法名称之后和之前。2 - 在指定泛型类的情况下,类型参数在类名之后并在
::
.
我的查询:-
上面的代码是第一个引用点的例子
有人可以为我提供一个实现第二个引用点的代码示例吗?
(基本上我不明白引用的第二点)。
java - 实例方法的两种方法引用的区别
我的查询
在上面的代码中,Statement 1
产生了两个编译时错误
1-找不到方法
myGenMeth(Integer, Integer)
2-
myGenMeth(T, T)
不能从静态上下文中引用非静态方法
其中,Statement 2
显示没有错误。
1-和有什么区别??Statement 1
Statement 2
2-如何Statement 2
正常工作。
(我不是在问为什么Statement 1
会产生错误)。
java - 多个 lambda 方法引用
可以像这样链接/连接对 lambda 表达式中的元素所做的操作:
有没有办法通过方法引用来做到这一点?像这样的东西:
我知道我可以在四个单独的调用中做到这一点(这也做更多,那就是改变值):
我什至不能做这样简单的事情:
java - Java 8 中静态初始化块中的 this::methodReference 或等效项
只是好奇:我有以下代码:
有没有办法在指示的行上避免列出当前类?该方法是与静态初始化程序块相同的类中的静态方法。我意识到我做不到,this::isGoogleHTTP5XXError
因为还没有实例,但似乎最好有这样的东西::isGoogleHTTP5XXError
来推断我当前的课程,而不必把它拼出来。这存在吗?
java - 使用 Java 8 流时的新对象实例化
除了后者的可读性稍好之外,使用以下构造是否有区别?
java - lambda / 方法引用和泛型的“不兼容类型”编译器错误
我在处理一些旧代码时偶然发现了一个问题,用 lambda 表达式或方法引用替换了几个匿名类。这个问题有点难以用语言来解释,但我会尽力而为,我还在下面添加了一个简短的例子来说明我的问题。
我的示例包括...
一个功能接口GenericListener,它接受一个类型参数 V并有一个方法“genericCallback(V genericValue)”。
一个类CallbackProducer,它接受一个类型参数 T。这个类还有一个方法来添加一个 Integer 类型的 GenericListener。
一个Main类,它创建 CallbackProducers 并向它们添加 GenericListeners。
当我从 Main 的构造函数运行 CallbackProducer 的 addIntegerListener 方法时,每当我避免指定 CallbackProducer 的 T 的类型时,我都会收到编译器错误:“不兼容的类型” 。
addIntegerListener 方法只使用了 GenericListener 的 V。据我所知,它并没有以任何方式使用 CallbackProducer 的 T。
我在 Main 的构造函数中对 addIntegerListener + 注释进行了多次调用,其中 3 次导致编译器错误。但据我所知(根据 IntelliJ),所有这些都应该是合法的。如果您注释掉对 addIntegerListener 的 3 个第一次调用,则应用程序将编译并运行得很好。
此外,如果 CallbackProducer 不使用泛型,并且我们完全删除了类型参数 T,则对 addIntegerListener 的 3 次第一次调用将编译。
这种行为有原因吗?我是不是误解了什么,或者这是java编译器中的一个弱点或错误?(我目前正在使用 java 1.8_51)
提前感谢您的澄清!
这是一个缩短的版本,没有所有的评论混乱,只有两次调用“addIntegerListener”,其中一次导致编译器错误。