Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从FreeMarker模板访问Java嵌套类_Java_Freemarker - Fatal编程技术网

从FreeMarker模板访问Java嵌套类

从FreeMarker模板访问Java嵌套类,java,freemarker,Java,Freemarker,假设在FTL中可以作为MyModel访问MyModel,为什么MyModel.someData.toJson或MyModel.getSomeData().toJson()失败,原因是以下计算结果为null或缺失:MyModel.someData.toJson或以下计算结果为null或缺失:MyModel.getSomeData().toJson()?JsonModel必须是公共的,否则它的成员将不会公开。这总是一个愚蠢的错误。我认为不能在同一个文件中有两个顶级类标记为public,但没有注意到这

假设在FTL中可以作为
MyModel
访问
MyModel
,为什么
MyModel.someData.toJson
MyModel.getSomeData().toJson()
失败,原因是
以下计算结果为null或缺失:MyModel.someData.toJson
以下计算结果为null或缺失:MyModel.getSomeData().toJson()

JsonModel
必须是公共的,否则它的成员将不会公开。

这总是一个愚蠢的错误。我认为不能在同一个文件中有两个顶级类标记为public,但没有注意到这实际上是一个内部类。谢谢你指出这一点。
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;
  }
}