为什么父类中的字段在其他类(Java/apache sling)中使用时具有空值
在我的为什么父类中的字段在其他类(Java/apache sling)中使用时具有空值,java,osgi,sling,Java,Osgi,Sling,在我的java代码中,我有以下类: @Model(adaptables = SlingHttpServletRequest.class) public class ListModel extends SomeList{ @Inject protected ResourceResolver resourceResolver; //this method works fine: public List<String> getAllData(){
java
代码中,我有以下类:
@Model(adaptables = SlingHttpServletRequest.class)
public class ListModel extends SomeList{
@Inject
protected ResourceResolver resourceResolver;
//this method works fine:
public List<String> getAllData(){
System.out.println(resourceResolver.getUserID());
}
}
为什么第二类中的resourceResolver有空值
我还尝试移动此代码:
@Inject
protected ResourceResolver resourceResolver;
从
ListModel
到MyNextListModel
,但即使如此,它在第二个类中仍然为空如果从模型继承的类缺少@model注释,sling也不知道该怎么办。只需将注释添加到继承类中,代码就可以工作了。顺便说一句,确保另一个类也在一个包中,该包在核心Pom中注册为sling models包。您是否尝试了super.resourcesolver.getUserID()?Kyle,我尝试了,但没有成功,不幸的是,我现在无法检查这一点,但我相信Sling需要使用@Model
注释对子类本身进行注释。它不是在超级课堂上寻找它。尝试将@Model(adapteables=SlingHttpServletRequest.class)
添加到MyNextListModel
。
@Inject
protected ResourceResolver resourceResolver;