Законно и определено ли передавать ссылку на метод не переопределяющему производному методу класса в его базовый класс? - PullRequest
0 голосов
/ 04 октября 2019

Является ли законным и определено ли передавать ссылку на метод не переопределяющего метода производного класса в его базовый класс?

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())

1 Ответ

2 голосов
/ 04 октября 2019

Почему бы просто не сделать нормально?

public class Derived extends Base {

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

   private Int returnsOne() { return 1; }
}
...