In meinem java
Code Ich habe die folgende Klasse mit:Warum das Feld macht aus übergeordneten Klasse hat einen Nullwert, wenn sie in anderen Klasse (Java/Apache Sling)
@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());
}
}
Als ich Methode aufrufen getAllData()
von dieser Klasse , Ich sehe die ID meines Benutzers - das ist in Ordnung.
Jetzt muss ich eine 2. Klasse schreiben, die die oben genannte erweitert. Es sieht so aus:
public class MyNextListModel extends ListModel{
//this method throws nullpointer because resourceResolver is null - why?
@Override
public List<ListItemModel> getAllItems() {
System.out.println(resourceResolver.getUserID());
}
}
Wie kommt es, dass der resourceResolver in der 2. Klasse einen Nullwert hat?
Ich habe auch versucht, diesen Code zu bewegen:
@Inject
protected ResourceResolver resourceResolver;
ListModel
-MyNextListModel
, aber obwohl, es ist immer noch null in der 2. Klasse
Haben Sie versucht, super.resourceResolver.getUserID()? –
Kyle, ich habe es versucht und es hat nicht funktioniert, leider ... – randomuser1
Ich habe keine Möglichkeit, dies jetzt zu überprüfen, aber ich glaube, Sling braucht die Unterklasse selbst mit der '@ Model' Annotation kommentiert werden. Es sucht nicht nach Super-Klassen. Versuchen Sie '@Model (adaptables = SlingHttpServletRequest.class)' zu 'MyNextListModel' hinzuzufügen. – toniedzwiedz