关于 Filed和Method这种的实际作用

来源:2-7 Field成员变量类

慕姐6301480

2020-10-08 20:13:21

1关于 Filed和Method这种的实际作用

Employee employee = (Employee) constructor.newInstance(new Object[]{

        100,"李磊",3000f,"研发部"

});

String ename = (String)enameField.get(employee);//看这行,如果想通过enameField.get方法得到类变量,要先获取employee对象,而获取employee对象需要知道有Employee这么个类,那么们问题来了,既然我都知道有Employee这么一个类,我直接实例化来使用不就好了,为什么要用这个反射概念的Field核心方法来获取这个ename呢??


mathOperation = (MathOperation) Class.forName("com.imooc.reflect." + op).newInstance();

像这种通过未知类的父接口来操作未知类,我感受到了反射的强大,但是 Filed和Method这种,我感觉没什么用啊?

2、int.class和Integer.class有什么区别?

另外【.class】这种是java的什么语法或者说概念,方法,关键字?感觉这看起来怪怪的,idea中ctrl+鼠标左键又点不进去看。


写回答

1回答

好帮手慕阿园

2020-10-09

同学你好

1, new对象是在类加载过程中分配内存;而通过java的反射机制可以用来产生对象,当我们需要一个对象的时候,不用去new一个对象了,而是通过反射产生一个对象。java中反射是在运行过程中动态的加载进入。有个很大的好处就是可以节省很多资源。

通俗地说,反射机制就是可以把一个类,类的成员(函数,属性)当成一个对象来操作。也就是说:类,类的成员,我们在运行的时候还可以动态地去操作他们。

2,int.class就是一个int的字节码类

而Integer.class是Integer的字节码类

同学可以理解为是一种语法,一般在需要指定某个类型时会用到,类型需要使用class来指明,比如 Integer-->Integer.class

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


0

0 学习 · 16556 问题

查看课程