final Map<String, Class<?>> properties = new HashMap<String, Class<?>>();
properties.put("jobName", String.class);
properties.put("companyName", String.class);
properties.put("totalApplicantForJob", String.class);
final Class<?> beanClass = createBeanClass("ApplicantCountVsJobBoards", properties);
public static Class<?> createBeanClass (final String className, final Map<String, Class<?>> properties) {
final BeanGenerator beanGenerator = new BeanGenerator();
// NamingPolicy policy =
//beanGenerator.setNamingPolicy(null);
BeanGenerator.addProperties(beanGenerator, properties);
return (Class<?>) beanGenerator.createClass();
}
如何向这些类对象添加值。
最佳答案
cglib 的 BeanGenerator
不仅生成动态类,还添加访问器方法。那么像这样进行反射方法调用怎么样:
Object instance = beanClass.newInstance(); // Creates a new object of your dynamic class
Method setJobName = beanClass.getMethod("setJobName", String.class); // Gets the setJobName method that takes one String argument
method.invoke(instance, "Super Cool Job");
您的 Bean 现在已(部分)填充。
可能还有更有效的方法,这只是为了向您展示概念。
关于java - 创建动态 POJO 并为其设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15653770/