Özel alanlara erişmek için, bunları sınıfın bildirilen alanlarından almanız ve ardından erişilebilir hale getirmeniz gerekir :
Field f = obj.getClass().getDeclaredField("stuffIWant"); //NoSuchFieldException
f.setAccessible(true);
Hashtable iWantThis = (Hashtable) f.get(obj); //IllegalAccessException
EDIT : aperkins tarafından yorumlandığı gibi , hem alana erişim, hem de erişilebilir olarak ayarlanması ve değerin alınması Exceptions atabilir , ancak dikkat etmeniz gereken tek kontrol edilen istisnalar yukarıda yorumlanmıştır.
Belirtilen NoSuchFieldExceptionbir alana karşılık gelmeyen bir adla bir alan istediyseniz, bu alan atılır.
obj.getClass().getDeclaredField("misspelled"); //will throw NoSuchFieldException
IllegalAccessExceptionAlanının erişilebilir değildi eğer özel ve eksik üzerinden erişilebilir hale getirilmediği takdirde, örneğin (atılmış olacağını f.setAccessible(true)hattı.
RuntimeExceptionAtılabilmektedir lar ya vardır SecurityException(JVM en takdirde ler SecurityManagerbir alanın erişilebilirliğini değiştirmesine izin vermez) veya IllegalArgumentExceptiondeğil alanın sınıfının türünde bir nesne üzerinde erişim alanını denemek ve eğer s:
f.get("BOB"); //will throw IllegalArgumentException, as String is of the wrong type