第3关:反射获取类中的属性

现在我以经试出来了,区别在于结果的第三行。

试过名字,加冒号,换行啥的,最后是这句System.out.println(gradeField);

 下面是代码:

package step3;
import java.lang.reflect.Field;

public class ReflectField {

    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Student student = new Student();
        Class<? extends Student> studentClass = student.getClass();
// ---------------------Begin------------------------
//        使用字节码对象获取该类中定义公用属性。遍历输出该属性名。
        Field[] Fields = studentClass.getDeclaredFields();
        for (Field field : Fields) {
            System.out.println(field.getName());
        }


//        学会使用反射获取类中指定属性,并输出该属性的值,Student类中的 name属性

            // 获取当前类和父类的某个公有属性
            Field gradeField = studentClass.getDeclaredField("name");
            
System.out.println(gradeField);
        System.out.println(gradeField.get(student));
            // 获取属性值
           // System.out.println( );


// ---------------------End------------------------

    }

}

---------华丽的分割线------------下方是旧事----------------

1.使用字节码对象获取该类中定义公用属性。遍历输出该属性名。

2.学会使用反射获取类中指定属性,并输出该属性的值,Student类中的 name属性。

我觉得这个题已经出的没意思了,竟然让我去猜答案大概是个什么形式,而不是考我是否能够选择正确的方法解决问题。
我猜不出来到底是哪里错了,答案里的代码运行出错也就算了,解决了之后结果还是不匹配,是不是我的问题?
如果不是,那我就要说这个题:
恶心,做个屁。

如果是,还请各位大佬指教菜鸟我一二,感激不尽。

下面是我的答案,无法通过。

 package step3;

import java.lang.reflect.Field;

public class ReflectField {

    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {

        Student student = new Student();

        Class<? extends Student> studentClass = student.getClass();

// ---------------------Begin------------------------

//        使用字节码对象获取该类中定义公用属性。遍历输出该属性名。

        Field[] publicFields = student.getClass().getDeclaredFields();

        for (Field field : publicFields) {

            System.out.println("declared field name : " + field.getName());

        }

//        学会使用反射获取类中指定属性,并输出该属性的值,Student类中的 name属性

            // 获取当前类和父类的某个公有属性

            Field gradeField = student.getClass().getDeclaredField("name");

        System.out.println(gradeField.getName());

            // 获取属性值

            System.out.println( gradeField.get(student));

// ---------------------End------------------------

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值