关于 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
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题