Play Framework (2.3.5) - Не удается получить доступ к шаблону во внутреннем классе.
У меня есть класс, определенный так (псевдокод):
package com.some.namespace
public class SomeClass {
protected SomeClass() {}
// stuff...
public class SomeInnerClass {
public SomeInnerClass() {}
// more stuff (accesses instance variables from SomeClass)...
}
}
Затем в моем шаблоне я использую блок многократного использования, который определяется следующим образом:
@doSomething(val: com.some.namespace.SomeClass.SomeInnerClass) = {
// even more stuff...
}
Но я получаю ошибку:
Тип SomeInnerClass не является членом объекта com.some.namespace.SomeClass
Я не могу получить доступ к внутренним классам в шаблонах или это должно работать? (если он должен работать, мне может понадобиться опубликовать мой фактический код)
1 ответ
Это должно работать, но потому что SomeInnerClass
является зависимым типом, т.е. зависит от вашего экземпляра синглтон-внешнего класса, вам нужно написать его так:
@doSomething(value: com.some.namespace.SomeClass#SomeInnerClass) = {
// even more stuff...
}
SomeClass#SomeInnerClass
Синтаксис в Scala означает, смутно, SomeInnerClass
из любого случая SomeClass
, Смотрите этот ответ для более подробной информации.
Если внутренний класс был статическим, то ваш текущий SomeClass.SomeInnerClass
Синтаксис будет путь.