yi诺千金 2023-08-30 18:00 采纳率: 33.3%
浏览 19
已结题

关于JAVA的一种写法Object::new


public Feature(){

        mNewDisplayAreaSupplier.create("123");
    }
private NewDisplayAreaSupplier mNewDisplayAreaSupplier = DisplayArea::new;
    interface NewDisplayAreaSupplier{
        DisplayArea create(String name);
    }

public class DisplayArea {
    DisplayArea(String name){
        System.out.println("DisplayArea test" + name );
    }
}

有人懂这种代码的意思吗?我的理解是接口里面的create方法对应的是DisplayArea的构造方法,不知道原因

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-30 21:04
    关注

    【以下回答由 GPT 生成】

    这段代码中的mNewDisplayAreaSupplier.create("123");这句代码的意思是调用接口NewDisplayAreaSupplier中的create方法,并传入参数"123",然后该方法会返回一个DisplayArea对象。你的理解是正确的,接口中的create方法对应的是DisplayArea类的构造函数。在这里,mNewDisplayAreaSupplier是一个函数式接口的实例,通过使用DisplayArea::new方法引用,使得它的create方法实际上是调用了DisplayArea类的构造函数,并返回一个新的DisplayArea对象。代码的执行结果会打印出"DisplayArea test123"。这里采用了Java 8新引入的方法引用(Method Reference)语法糖,它允许将方法作为值来传递,从而简化代码。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 8月30日