我有一个Spring控制器,它的方法映射为请求:
@RequestMapping(value = "/album", method = RequestMethod.POST)
public void generateAlbum(GenerateAlbumParams params, HttpServletResponse response){
...
}GenerateAlbumParams是一个简单的类:
@Getter
@Setter
public class GenerateAlbumParams {
public enum Position {LEFT_TOP, LEFT_BOTTOM, RIGHT_TOP, RIGHT_BOTTOM}
private List<SlideParams> slideParams = new ArrayList<>();
}SlideParams是:
@Getter
@Setter
public class SlideParams{
private Boolean checked = false;
private Long id;
private GenerateAlbumParams.Position mapLegendPosition;
private GenerateAlbumParams.Position mapTablePosition;
}一切都很好,但是如果我想让SlideParams成为的内部类
@Getter
@Setter
public class GenerateAlbumParams {
public enum Position {LEFT_TOP, LEFT_BOTTOM, RIGHT_TOP, RIGHT_BOTTOM}
private List<SlideParams> slideParams = new ArrayList<>();
@Getter
@Setter
public class SlideParams{
private Boolean checked = false;
private Long id;
private Position mapLegendPosition;
private Position mapTablePosition;
}
}它提出了一个例外:
HTTP状态500 -请求处理失败;嵌套异常是org.springframework.beans.InvalidPropertyException:无效属性'slideParams‘of bean class xxx.GenerateAlbumParams:非法尝试获取属性'slideParams’抛出的异常;嵌套异常是org.springframework.beans.NullValueInNestedPathException:无效属性'slideParams‘of bean class xxx.GenerateAlbumParams:无法实例化属性类型xxx.GenerateAlbumParams$SlideParams以自动生成嵌套属性路径;嵌套异常是org.springframework.beans.BeanInstantiationException:未能实例化xxx.GenerateAlbumParams$SlideParams:它是一个抽象类吗?嵌套异常是java.lang.InstantiationException: xxx.GenerateAlbumParams$SlideParams
发布于 2016-10-05 16:22:53
似乎您应该将内部类设置为static,这样就可以在不引用任何外部类对象的情况下实例化它(例如new GenerateAlbumParams.SlideParams() )。
https://stackoverflow.com/questions/39878907
复制相似问题