java - 将非重写派生类方法的方法引用传递给其基类是否合法且已定义?

标签 java inheritance method-reference

将对非重写派生类方法的方法引用传递给其基类是否合法且已定义?

public class Base {
   private Supplier<Int> intSupplier;

   public Base(Supplier<Int> intSupplier) { 
        this.intSupplier = intSupplier;
   }

   public Int getInt() { 
        return inSupplier.get(); 
   }
}

public class Derived extends Base {
   public Derived() {
      super(this::returnsOne);
   }

   private Int returnsOne() { return 1; }
}

.

assert(1 == new Derived().getInt())

最佳答案

为什么不正常做呢?

public class Derived extends Base {

   @Override
   public Int getInt() { 
        returnsOne(); 
   }

   private Int returnsOne() { return 1; }
}

关于java - 将非重写派生类方法的方法引用传递给其基类是否合法且已定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58228635/

相关文章:

java - 两个 ScheduledExecutorService 互相覆盖?

java - 将方程转化为代码

java - 为什么等效的 lambda 表达式和方法引用在捕获静态字段值时表现不同?

java - Map<String, methodReference> - 带参数运行 methodReference

java - 可以用java中使用反射的方法引用替换

java - 跟踪对 java servlet 的调用

java - 如何修复仅显示单行的android的回收 View View 问题

java - 当子类对象被指定为父类(super class)对象时会发生什么

javascript - 继承angularJS模块

Python继承和重载问题