Java 如果我的构造函数接受基元类型,如何使用getDeclaredConstructor?

Java 如果我的构造函数接受基元类型,如何使用getDeclaredConstructor?,java,Java,我正在寻找这样一个构造函数: type.getDeclaredConstructor(Integer.class); 当类型为 MyType { public MyType(Integer a); } MyType { public MyType(int a); } 但是,当类型为时,这不起作用 MyType { public MyType(Integer a); } MyType { public MyType(int a); } 我不想将int替换为Integer,因为我被告知这可

我正在寻找这样一个构造函数:

type.getDeclaredConstructor(Integer.class);
当类型为

MyType {
public MyType(Integer a);
}
MyType {
public MyType(int a);
}
但是,当类型为时,这不起作用

MyType {
public MyType(Integer a);
}
MyType {
public MyType(int a);
}
我不想将
int
替换为
Integer
,因为我被告知这可能会产生不必要的开销

我该怎么办?

您可以使用

type.getDeclaredConstructor(int.class);
发件人:

类文字是由类、接口、数组或基元类型或伪类型void的名称,后跟“.”和标记类组成的表达式

你可以用

type.getDeclaredConstructor(int.class);
发件人:

类文字是由类、接口、数组或基元类型或伪类型void的名称,后跟“.”和标记类组成的表达式


关于有人告诉您可能会出现不必要的开销,这不是真的,也不太可能影响您的应用程序性能。您已经了解到的开销是整数的装箱/拆箱,它甚至针对-128的整数进行了优化+127@Raffaele如果我有MyClass(整数I)并创建了新的MyClass(2),Rossi不会装箱/拆箱吗?如果您在MyClass(整数I)上调用了新的MyClass(2)那么装箱就不会发生,因为在JVM中应该有一个对应于2的缓存整数对象(不过可能取决于JVM实现),因为有人告诉您可能会发生不必要的开销,这不是真的,并且不太可能影响应用程序性能。您已经了解到的开销是整数的装箱/拆箱,它甚至针对-128的整数进行了优化+127@Raffaele如果我有MyClass(整数I)并创建了新的MyClass(2),Rossi不会装箱/拆箱吗?如果您在MyClass(整数I)上调用了新的MyClass(2)那么装箱就不会发生,因为在JVM中应该有一个对应于2的缓存整数对象(不过可能取决于JVM实现)。出于某种原因,这是Java的一个鲜为人知的秘密。出于某种原因,这是Java的一个鲜为人知的秘密。