在我的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());
}
}
当我从此类调用方法
getAllData()
时,我看到了用户的ID-很好。现在,我需要编写一个第二类,它将扩展上面的一个。看起来像这样:
public class MyNextListModel extends ListModel{
//this method throws nullpointer because resourceResolver is null - why?
@Override
public List<ListItemModel> getAllItems() {
System.out.println(resourceResolver.getUserID());
}
}
为什么第二类中的resourceResolver具有空值?
我也尝试移动此代码:
@Inject
protected ResourceResolver resourceResolver;
从
ListModel
到MyNextListModel
,但是即使在第二类中它仍然为null 最佳答案
如果从您的模型继承的类缺少@model批注,则sling不知道该怎么做。只需将注释添加到继承的类,您的代码就可以工作。顺便说一句,请确保另一个类也位于您的核心Pom中注册为吊索模型的软件包中。