我的程序有一个包含大量字段的类。我需要能够从两个先前存在的实例中创建此类的新实例。它会随机选择从前两个实例中的哪一个获得哪些字段。给出字段值而没有说明字段的名称
很显然,我可能只是做了一堆的这些:
if(random.nextBoolean())
this.value = a.value;
else:
this.value = b.value;
不过,我一直由一些在ClassName.class中发现的方法很感兴趣。我曾尝试过研究这个,但是,我从未有过任何运气。所以让我告诉你我想做什么:
for(int i = 0; i < Specimen.class.getDeclaredFields().length; i++){
if(random.nextBoolean())
this.fields[i] = a.fields[i];
else
this.fields[i] = b.fields[i];
这是我的理解,这是不可能的反思,有没有另一种方式?
这是可能的反思。您需要首先将字段更改为可访问(如果它是私密的)。 – Steven
是的,谢谢史蒂文。在另一个stackoverflow问题,他们说这是不可能的反射到几乎相同的问题。 – csga5000