Ben ilginç bir şey buldum. Basit sınıfın kurucularını ve değiştiricilerini almaya çalıştım.Beklenmeyen "geçici" yapıcı değiştirici
Class<?> clazz = Test.class;
Constructor<?>[] ctors = clazz.getDeclaredConstructors();
for (Constructor<?> ctor : ctors) {
int mod = ctor.getModifiers();
/*if not package-private modifier*/
if(mod!=0) {
System.out.println(Modifier.toString(mod)));
}
}
sonucudur: Burada
public class Test {
public Test(Object... args) {}
}
yapıcı değiştiricileri almak için koddur
public transient
Ben değişken parametreleri İmalatcı geçerseniz, ama sadece dizi tamam.
public class Test {
public Test(Object[] args) {}
}
sonucudur:
public
aynı olursa olsun yapıcı modifiye olur (halka, korunmuş, özel) veya parametrelerin tipi (ilkel ya da referansları). "Geçici", kurucu için geçerli bir değiştirici değilken nasıl olabilir?
o 'toString' yönteminin bir hata olarak sayılır mı? –
@JanDvorak: Emin değilim. Her şey bekledikçe, 'Değiştirici' sınıfı sadece JVM spesifikasyonlarında tanımlanan bir değiştirici alt kümesiyle (aynı bit değerine sahip olan modifiye ediciler arasında ayrım yapamadığından) çalışabilir. – NPE
Merak ediyorum - neden gerçek değerler çarpışıyor? Bu JVM devlerinden bir gözetim değil mi? –