Java 如何动态创建并实例化POJO类?

Java 如何动态创建并实例化POJO类?,java,pojo,Java,Pojo,我的项目的某些规范要求我根据通过excel工作表或JSON提供的信息创建POJO类;然后使用手头的相关信息创建该类的对象,这些信息将在以后的代码中使用 从excel工作表和JSON中提取相关数据不是问题。由于这一点,我甚至能够动态创建POJO类。但是我不确定是否有可能创建这个类的对象。正如他在上述回答中提到的- 但问题是:你无法针对这些方法进行编码, 因为它们在编译时不存在,所以我不知道这有什么好处 我会帮你的 是否可以实例化在上述答案中创建的类?如果是,怎么做?如果没有,这个问题还有什么替代方

我的项目的某些规范要求我根据通过excel工作表或JSON提供的信息创建POJO类;然后使用手头的相关信息创建该类的对象,这些信息将在以后的代码中使用

从excel工作表和JSON中提取相关数据不是问题。由于这一点,我甚至能够动态创建POJO类。但是我不确定是否有可能创建这个类的对象。正如他在上述回答中提到的-

但问题是:你无法针对这些方法进行编码, 因为它们在编译时不存在,所以我不知道这有什么好处 我会帮你的


是否可以实例化在上述答案中创建的类?如果是,怎么做?如果没有,这个问题还有什么替代方案?或者,我是否应该改变关于此规范的方法,并考虑其他选项?

您可以使用并访问提供的方法。

可能在您的情况下,我会选择下面的方法。这不能作为评论发布。所以在这里发帖

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GenericDTO {

    private Map<String, List<Object>> resultSetMap = new HashMap<String, List<Object>>() ;

    public void addAttribute(String attributeName, Object attributeValue) {
        if(resultSetMap.containsKey(attributeName)) {
            resultSetMap.get(attributeName).add(attributeValue);
        } else {
            List<Object> list = new ArrayList<Object>();
            list.add(attributeValue);
            resultSetMap.put(attributeName, list);
        }
    }

    public Object getAttributeValue(String key) {
        return (resultSetMap.get(key) == null) ? null : resultSetMap.get(key).get(0); 
    }

    public List<Object> getAttributeValues(String key) {
        return resultSetMap.get(key); 
    }

}

首先,回答你的问题:这就是你想要的吗。第二,这听起来是一个非常糟糕的主意。我希望你有充分的理由这样做。你考虑过吗List@BileshGanguly,不知道问题的细节,我不知道你为什么要用这个解决方案,就像我说的,我希望你有一个很好的理由这样做。一般来说,动态类加载很难处理,如果有其他解决方案,应该避免。让高级开发人员加入讨论吧!:)在运行中创建POJO,然后仅通过反射访问它们,这在a***中是一种毫无意义的痛苦。根据地图,把“前辈”送到这里,好好烤一烤。我最初的解决办法实际上是这个答案的意思。尽管如此,我还是使用了列表。
GenericDTO dto = new GenericDTO();
dto.addAttribute("aa", 1);
dto.addAttribute("aa", "aa");
dto.addAttribute("bb", 5);

System.out.println(dto.getAttributeValue("bb"));
System.out.println(dto.getAttributeValues("aa"));