import java.lang.reflect.Field;

public class AttributeAccess {
	public static void main(String[] args) {
		Test o1 = new Test();
		o1.setI(42);

		System.out.println( "i="+o1.getI() );

		try {
			Field iAttribute = (o1.getClass()).getField("i");
			System.out.println( "i="+iAttribute.getInt(o1) );

			iAttribute.setInt(o1, 50 );
			System.out.println( "i="+iAttribute.getInt(o1) );
		} catch (NoSuchFieldException e) {
			System.out.println("A NoSuchFieldException occurred!\n"+e.toString()+"\n"+e.getMessage() );
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			System.out.println("A IllegalAccessException occurred!\n"+e.toString()+"\n"+e.getMessage() );
			e.printStackTrace();
		} //catch
	} //main()
} //class AttributeAccess

class Test {
	public int i;

	public void setI(int i) {
		this.i = i;
	} //setI()

	public int getI() {
		return i;
	} //getI()
} //class Test