如何在带有参数的字符串中动态创建java中的实例?

use*_*946 0 java

我知道这个问题已经回答了一段时间.但是参数一直是一个对象.多数民众赞成我要替换的东西:

if (s.equals("A")) { add (obj = new A(x,y)); }
if (s.equals("B")) { add (obj = new B(x,y)); }
if (s.equals("C")) { add (obj = new C(x,y)); }
Run Code Online (Sandbox Code Playgroud)

我有这个:

try
{
    Class cl = Class.forName(s);
    Constructor con = cl.getConstructor (x, y);
    obj = con.newInstance(x, y);
}
Run Code Online (Sandbox Code Playgroud)

但是它期望x,y作为一个类,但它是一个int.怎么做>

Mar*_*nik 5

你需要

cl.getConstructor(int.class, int.class);
Run Code Online (Sandbox Code Playgroud)

有些Class对象反映了原始类型,甚至void类型也有反射对应的类型Void.class.