反射中用Constructor获取构造函数的名称时,使用getName()方法时,在不同的编译环境下返回不同结果,可能会返回包+类的名称,而不是simpleName
import java.lang.reflect.Constructor;
public class GetName {
public static void main(String[] args) {
Constructor[] constructors = SampleClass.class.getDeclaredConstructors();
for (Constructor constructor : constructors) {
System.out.println("Constructor: " + constructor.getName());
}
}
}
class SampleClass {
private String sampleField;
public SampleClass() throws ArrayIndexOutOfBoundsException {
}
private SampleClass(String sampleField){
this.sampleField = sampleField;
}
public String getSampleField() {
return sampleField;
}
public void setSampleField(String sampleField) {
this.sampleField = sampleField;
}
}
Constructor: com.pro.domain.SampleClass
Constructor: com.pro.domain.SampleClass
Constructor: SampleClass
Constructor: SampleClass
本文探讨了Java反射中使用Constructor对象的getName()方法获取构造函数名称时可能遇到的问题。在不同编译环境下,该方法返回的结果不尽相同,有时会包含包名而非简单的类名。文章通过示例代码展示了这一现象。
1085

被折叠的 条评论
为什么被折叠?



