Пожалуйста, найдите ниже фрагмент кода: класс ПравилоДоступ перекрытый метод частного внутреннего класса с частным конструктору
public class Rules {
public static final JarvisFilterRule FILTER = new JarvisFilterRule();
private static class JarvisFilterRule extends RelOptRule {
private JarvisFilterRule() {
super(operand(Filter.class, operand(Query.class, none())));
}
public void onMatch(RelOptRuleCall call) {
// do something
}
}
}
класс RelOptRule
public abstract class RelOptRule {
/**
* Description of rule, must be unique within planner. Default is the name
* of the class sans package name, but derived classes are encouraged to
* override.
*/
protected final String description;
public abstract void onMatch(RelOptRuleCall call);
}
Мой вопрос: Как может Я получаю доступ к методу onMatch() вложенных классов Rules.JarvisFilterRule?
Метод 'onMatch' является методом _instance_, поэтому вы не получаете доступ к методу onMatch() для внутреннего _class_". Вы можете вызвать этот метод на новом экземпляре 'JarvisFilterRule', на который ссылается константа' FILTER'. Просто назовите 'Rules.FILTER.onMatch (...)'. Кроме того, ваш код не компилируется, и ваш вопрос очень неясен. – Seelenvirtuose
до Rules.FILTER, я не получаю никаких ошибок. Но когда я вызываю Rules.FILTER.onMatch (..), я получаю ошибку компиляции «Тип Rules.JarvisFilterRule не отображается». –