Play框架(2.3.5) - 访问内部类的模板失败

时间:2015-03-02 21:53:39

标签: playframework playframework-2.3

我有一个像这样定义的类(伪代码):

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不是object的成员   com.some.namespace.SomeClass

我无法访问模板中的内部类,还是应该可以使用? (如果它应该工作我可能需要发布我的实际代码)

1 个答案:

答案 0 :(得分:3)

它应该可以工作,但因为SomeInnerClass是一个依赖类型,即依赖于你的单例外部类实例,你需要写它:

@doSomething(value: com.some.namespace.SomeClass#SomeInnerClass) = {
    // even more stuff...
}

Scala中的SomeClass#SomeInnerClass语法含糊地表示来自 SomeInnerClass的任何实例的SomeClass。有关详细信息,请参阅this answer

但是,如果内部类是静态,那么您当前的SomeClass.SomeInnerClass语法就是最佳选择。