0
点赞
收藏
分享

微信扫一扫

Java内省API PropertyDescriptor#createPropertyEditor(javaBean)返回null造成空指针

伽马星系 2022-04-29 阅读 45

问题描述

	propertyDescriptor.setPropertyEditorClass(DatePropertyEditor.class);
	PropertyEditor propertyEditor = propertyDescriptor.createPropertyEditor(user);   // 返回null

解决方法——外部类

自定义的属性编辑器DatePropertyEditor没有用public修饰,给DatePropertyEditor加上public。
在这里插入图片描述

解决方法——内部类

对于内部类不仅需要使用public,还只能使用静态内部类。
在这里插入图片描述

源码分析

propertyDescriptor.createPropertyEditor(user)
在这里插入图片描述
使用反射创建DatePropertyEditor实例。
在这里插入图片描述在这里插入图片描述

可以看到,cls.newInstance()无论是外部类还是内部类都需要public修饰,并且内部类还需要是静态内部类。

举报

相关推荐

0 条评论