如何调用具有基本类型作为参数的构造函数?我们将在运行时了解的类名。 就像我们在运行时知道类名是Abc一样,我们必须找到所有那些带有int,char,boolean作为参数类型的构造函数吗?
答案 0 :(得分:4)
您可以使用TYPE
Class对象。每个包装类都有一个,它代表相应的基本类型。你也可以用类文字引用这些文字,例如: char.class
。
因此,如果你有一些类在构造函数中采用原语:
public class Abc {
public Abc(char c) {}
}
您可以使用基元类型获取构造函数:
Constructor<Abc> ctor;
ctor = Abc.class.getConstructor(Character.TYPE); // Character.TYPE and
ctor = Abc.class.getConstructor(char.class); // char.class are the same
然后你可以用一个盒装基元来调用它:
Abc abc;
abc = ctor.newInstance(Character.valueOf('a')); // invoke with wrapper
abc = ctor.newInstance('a'); // or autobox
您可以在原始类型中使用原始Class对象来引用基本类型。字段,方法等
答案 1 :(得分:0)
我们在反射中使用Wrapper类而不是原始类型