Как назвать классный внутренний класс
Это мой код, и я пытаюсь вызвать метод во внутреннем классе, как показано ниже (последняя строка, ic = new oc.Inner()). Но я получаю ошибку.
Я использую Groovy консоль, и в соответствии с Groovy документации я ожидаю, что класс Inner может быть вызван из внешнего класса. Я не уверен насчет синтаксиса.
class Outer {
private String privateStr = 'some string'
def callInnerMethod() {
new Inner().methodA()
}
class Inner {
def methodA() {
println "${privateStr}."
}
}
}
Outer oc = new Outer()
ic = new oc.Inner()
Вот что я получаю в результате:
startup failed:
Script1.groovy: 14: unable to resolve class oc.Inner
@ line 14, column 6.
ic = new oc.Inner()
^
1 error
2 ответа
def oc = new Outer()
def ic = new Outer.Inner(oc)
https://groovy-lang.org/differences.html#_creating_instances_of_non_static_inner_classes
Как насчет этого:
def ic = new Outer.Inner()
Скорее всего, это будет работать, только если ваш внутренний класс статичен.