Play 框架 (2.3.5) - 访问内部 class 的模板失败
Play framework (2.3.5) - Template accessing an inner class fails
我有一个这样定义的class(伪代码):
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...
}
但是我得到错误:
type SomeInnerClass is not a member of object
com.some.namespace.SomeClass
我无法访问模板中的内部 classes 还是这应该有效? (如果它应该工作,我可能需要 post 我的实际代码)
它应该可以工作,但是因为 SomeInnerClass
是 dependent 类型,即依赖于你的单例外部 class 实例,你需要这样写:
@doSomething(value: com.some.namespace.SomeClass#SomeInnerClass) = {
// even more stuff...
}
Scala 中的 SomeClass#SomeInnerClass
语法含糊地表示来自 SomeClass
的任何实例的 SomeInnerClass
。有关详细信息,请参阅 this answer。
如果内部 class 是 static,但是,您当前的 SomeClass.SomeInnerClass
语法将是可行的方法。
我有一个这样定义的class(伪代码):
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...
}
但是我得到错误:
type SomeInnerClass is not a member of object com.some.namespace.SomeClass
我无法访问模板中的内部 classes 还是这应该有效? (如果它应该工作,我可能需要 post 我的实际代码)
它应该可以工作,但是因为 SomeInnerClass
是 dependent 类型,即依赖于你的单例外部 class 实例,你需要这样写:
@doSomething(value: com.some.namespace.SomeClass#SomeInnerClass) = {
// even more stuff...
}
Scala 中的 SomeClass#SomeInnerClass
语法含糊地表示来自 SomeClass
的任何实例的 SomeInnerClass
。有关详细信息,请参阅 this answer。
如果内部 class 是 static,但是,您当前的 SomeClass.SomeInnerClass
语法将是可行的方法。