java - 如何创建动态调用其他 Java 类的 HashMap?

标签 java

我正在尝试创建一个 HashMap<Integer, Class> ,并且没有成功。本质上,我想做的就是能够将类动态加载到 Map 中。

我的托管 Bean 如下所示:

package Demo;

import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.context.Dependent;
import javax.inject.Named;

/**
 *
 * @author kbarnett
 */
@Named(value = "facePalmBean")
@Dependent
public class FacePalmBean {

    private HashMap<Integer, Class> chimpanzee;
    private NewClass0 NewClass0;
    private NewClass1 NewClass1;
    private NewClass2 NewClass2;

    /**
     * Creates a new instance of FacePalmBean
     */
    public FacePalmBean() {

        chimpanzee = new HashMap<>();
        NewClass0 = new NewClass0(0);
        NewClass1 = new NewClass1(1);
        NewClass2 = new NewClass2(2);

    }

    public HashMap<Integer, Class> getChimpanzee() {
        for (int i = 0; i < 3; i++) {
            try {
                String tmpstring = "NewClass"+i;
                System.out.println(tmpstring);
                Class tmpclass = Class.forName(tmpstring);
                System.out.println(tmpclass);
                chimpanzee.put(i, tmpclass);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(FacePalmBean.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        System.out.println(chimpanzee.toString());
        return chimpanzee;
    }

    public void setChimpanzee(HashMap<Integer,Class> chimpanzee) {
        this.chimpanzee=chimpanzee;
    }


}

NewClass 看起来像这样:

package Demo;


public class NewClass0 {
        Integer MyNumber;

    NewClass0(int num){
        MyNumber=num;
    }

    public Integer getMyNumber() {
        return MyNumber;
    }
}

除了数字(即 0、1 和 2)之外,所有 NewClass 都是相同的。

最佳答案

为了使用 Class.forName() 方法加载类,您必须指定完全限定的包名称。例如,在本例中,它必须是 Demo.NewClass0

关于java - 如何创建动态调用其他 Java 类的 HashMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768694/

相关文章:

java - 猜测次数的问题不会针对新的尝试进行更新,并且在输入数字 1005,1006 时代码会导致错误?

Java - 使用Ant自动生成样板代码

java - 为什么 SwingUtilities.invokeLater() 会导致 JButton 卡住?

Java/jetty/野蝇 : Gracefully Handle Aborted Client Connections

java - 是否可以使用过程从数据库 MVC 风格获取数据?

java - HQL Like 不返回任何内容

java - Hadoop Mapreduce错误NativeMethodAccessor

java - 我如何在这个java项目中使用maven

java - 我们可以在Java中的while循环中定义一个变量吗?

java - 是否有用于解码 php session 数据的 Java 库?