public static void showFullInfo(Object obj){
        Class eClass = obj.getClass();
        System.out.println("class name = " +  eClass.getName());
        System.out.println("super = " + eClass.getSuperclass().getName());


        Field[] fields = eClass.getDeclaredFields();
        for(Field f : fields){
            System.out.println(f.getType().getName() + " " + f.getName());
        }

        for(Method m : eClass.getDeclaredMethods()){
            System.out.println(m.getName());
        }

        try {
            Field field = eClass.getDeclaredField("name");
            field.setAccessible(true);
            field.set(obj, "Andriy");
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

    }