![](/img/trans.png)
[英]How can I call the overridden method in a child class from a parent class's inner class in JAVA?
[英]In Java, how to let child class decide of which type parameter class use as overridden method argument?
我有一個抽象類,其中我希望有一個抽象方法接受消費者功能接口的參數,並讓子類決定哪種類型應該參數化消費者。
我是這樣試的:
public void show(Consumer<?> validationHandler) {
this.validationHandler = validationHandler;
stage.show();
}
但是在子類中,它說它不是正確的覆蓋:
@Override
public void show(Consumer<Protection> validationHandler) {
super.show(validationHandler);
}
我的目標是能夠在子實例上調用此方法,並在我將傳遞的消費者 lambda 中提供正確的類型。
你知道如何進行嗎?
使您的基類泛型(具有泛型類型 T),並使show()
接受Consumer<T>
(或Consumer<? super T>
。使子類擴展BaseClass<Protection>
。
class BaseClass<T> {
public void show(Consumer<T> validationHandler) { // or Consumer<? super T>
}
}
class SubClass extends BaseClass<Protection> {
@Override
public void show(Consumer<Protection> validationHandler) { // or Consumer<? super Protection>
super.show(validationHandler);
}
}
class Protection {}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.