Hazırda bekletme, örneğin @Id değerini ayarlamak için java sınıfının özel alan/yöntemine nasıl erişebilir?Hazırda bekletme özel alana nasıl erişebilir?
Teşekkür
bir tahmin azHazırda bekletme, örneğin @Id değerini ayarlamak için java sınıfının özel alan/yöntemine nasıl erişebilir?Hazırda bekletme özel alana nasıl erişebilir?
Teşekkür
bir tahmin azkullanırım .NET o kadar, bu yansıma kullanır. Bakınız Reflection: Breaking all the Rules ve Hibernate: Preserving an Object's Contract.
Ben java programcısı değilim ama java benzer yansıma desteği vardır inanıyorum bu yansıma doğrudan kullanarak
hedef türüne yansıtan ve alanları belirleyerek yapılır söyleyebilirim Crippledsmurf dediği gibi ben
deneyin
import java.lang.reflect.Field;
class Test {
private final int value;
Test(int value) { this.value = value; }
public String toString() { return "" + value; }
}
public class Main {
public static void main(String... args) throws NoSuchFieldException, IllegalAccessException {
Test test = new Test(12345);
System.out.println("test= "+test);
Field value = Test.class.getDeclaredField("value");
value.setAccessible(true);
System.out.println("test.value= "+value.get(test));
value.set(test, 99999);
System.out.println("test= "+test);
System.out.println("test.value= "+value.get(test));
}
}
baskılar
test= 12345
test.value= 12345
test= 99999
test.value= 99999