ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

引用相同的Java方法但返回了不同的地址

2019-06-22 13:49:52  阅读:228  来源: 互联网

标签:java method-reference functional-interface


我引用相同的方法两次,但参考不同.看这个例子:

import java.util.function.Consumer;

public class MethodRefTest {
    public static void main(String[] args) {
        new MethodRefTest();
    }

    public MethodRefTest() {
        Consumer<Integer> a = this::method;
        System.out.println(a);
        Consumer<Integer> b = this::method;
        System.out.println(b);
    }

    public void method(Integer value) {

    }
}

输出是:

MethodRefTest$$Lambda$1/250421012@4c873330
MethodRefTest$$Lambda$2/295530567@776ec8df

方法引用只不过是匿名类的语法糖吗?如果没有,我必须做什么才能始终获得相同的方法参考? (除了在字段中存储一次引用以便使用.)

(应用程序:我认为方法引用是观察者实现的一种更漂亮的方式.但是每次使用不同的引用时,一旦添加了观察者就不可能从观察者中移除它.)

解决方法:

Are method references nothing more than syntactic sugar for anonymous classes?

正确.它们并不一定总是被实施为重量级,但从概念上讲它们就是全部.

If not, what do I have to do to always get the same method reference? (Aside from storing a reference once in a field to work with.)

将引用存储在字段中.这就是答案. (抱歉.)

标签:java,method-reference,functional-interface
来源: https://codeday.me/bug/20190622/1263987.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有