让MyClass
成为此Java代码表示的类:
public MyClass
{
private String foo;
private Integer bar;
public MyClass(byte[] contents) { ... }
}
让myConstructor
为以下构造函数实例:
Constructor myConstructor = MyClass.class.getDeclaredConstructor(byte[].class);
我的问题是以下
此代码是否使用反射?
byte[] contents = new byte[]{0,1,2};
MyClass myInstance = myConstructor.newInstance(contents);
实例化myConstructor
后,还是等效于以下代码?
byte[] contents = new byte[]{0,1,2};
MyClass myInstance = new MyClass(contents);
我正在考虑的等价关系是.newInstance(byte[] contents)
以与new
相同的方式直接访问构造函数,唯一的反射操作是找到构造函数。
亲切的问候