2016-05-10 5 views
0
public class MyModel { 

    private final com.google.gson.Gson gson = new Gson(); 
    private final SomeData someData = new SomeData(); 

    private class SomeData extends JsonModel() { 
    String text = "text"; 
    } 

    private class JsonModel() { 
    public String toJson() { 
     return gson.toJson(this); 
    } 
    } 

    public SomeData getSomeData() { 
    return someData; 
    } 
} 

Unter der Annahme, MyModel als myModel in FTL zugänglich ist, warum myModel.someData.toJson oder myModel.getSomeData().toJson() mit The following has evaluated to null or missing: myModel.someData.toJson oder The following has evaluated to null or missing: myModel.getSomeData().toJson() scheitern?Zugriff auf Java verschachtelte Klassen von Freemarker Vorlagen

Antwort

2

JsonModel muss öffentlich sein, sonst werden seine Mitglieder nicht exponiert.

+0

Es war immer ein dummer Fehler. Ich dachte, du könntest nicht zwei Klassen der obersten Ebene in derselben Datei als öffentlich markieren, da du nicht bemerkt hast, dass es sich um eine innere Klasse handelte. Danke, dass du es aufgezeigt hast. – Michael