【发布时间】:2021-12-16 20:27:20
【问题描述】:
我创建了一个BeanGenerator 对象和addProperties 像这样。
final BeanGenerator beanGenerator = new BeanGenerator();
final Map<String, Class<?>> properties = new HashMap<>();
properties.put("name", String.class);
properties.put("`name", String.class);
properties.put("~name", String.class);
properties.put("!name", String.class);
properties.put("@name", String.class);
properties.put(")name", String.class);
properties.put("(name", String.class); // Problem !!!
BeanGenerator.addProperties(beanGenerator, properties);
即使我使用`~!@#$%^&*)-+= 等非正式字符作为属性名称,它也可以正常运行。
但是当我使用左括号 ( 作为属性名称时
java.lang.IllegalArgumentException: Name 'get(name' is invalid
发生了。
为什么?以及属性名称如何包含(?
【问题讨论】:
-
快速搜索告诉我在各种库中有一堆名为
BeanGenerator的类。这是哪一个? -
看起来像cglib
-
@FedericoklezCulloca org.springframework.cglib.beans.BeanGenerator
-
dang 这太旧了!!(spring-version??) spring current package description 说:“Spring 对 CGLIB 核心包的重新打包(仅供内部使用)"