Java 以内部类作为参数的Spring控制器
我有一个Spring控制器,其方法映射到请求:Java 以内部类作为参数的Spring控制器,java,spring,spring-mvc,request,inner-classes,Java,Spring,Spring Mvc,Request,Inner Classes,我有一个Spring控制器,其方法映射到请求: @RequestMapping(value = "/album", method = RequestMethod.POST) public void generateAlbum(GenerateAlbumParams params, HttpServletResponse response){ ... } GenerateAlbumParams是一个简单的类: @Getter @Setter public class GenerateAlbumP
@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<>();
}
一切都很好,但如果我想将slidepams作为的内部类生成bumparams:
@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;
}
}
@Getter
@塞特
公共类GenerateAllams{
公共枚举位置{左上、左下、右上、右下}
private List slideParams=new ArrayList();
@吸气剂
@塞特
公共类幻灯片{
私有布尔值选中=false;
私人长id;
私人职位;私人职位;
私人职位;
}
}
它认为有一个例外:
HTTP状态500-请求处理失败;嵌套异常是
org.springframework.beans.InvalidPropertyException:无效属性
bean类的“slideParams[0]”
[xxx.GenerateAlbumParams]:非法
尝试获取属性“slideParams”引发异常;嵌套
例外情况为org.springframework.beans.NullValueInTestedPathException:
bean类的无效属性“slideParams”
[xxx.GenerateAlbumParams]:无法
实例化属性类型
[xxx.GenerateAlbumParams$SlideParams]
自动增长嵌套属性路径;嵌套异常是
org.springframework.beans.BeanInstantiationException:未能
实例化
[xxx.GenerateAlbumParams$SlideParams]:
它是一个抽象类吗?;嵌套异常是
java.lang.InstanceionException:
xxx.GenerateAlbumParams$SlideParams
似乎您应该将内部类
设置为静态
,这样就可以在不引用外部类的任何对象的情况下对其进行实例化(例如新生成的bumparams.SlideParams()
似乎您应该将内部类设置为静态
,这样就可以在不引用外部类的任何对象的情况下对其进行实例化(例如,新一代bumparams.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;
}
}