Java程序设计:Java反射

一、Java反射的思想

 
    Java反射是Java程序在运行过程中获取类的对象、属性和方法,它是一个动态的概念。注意反射是从Java字节码中获取类对象的内容属性和方法等信息,而不是从静态的代码编译后的类中获取
    有时候我们往往需要在系统运行过程中获取类的相关信息,有人说你new个该类对象不就完事了吗?不好意思,系统正在运行重要的应用不可能停下来让你修改代码,有的系统也没有现成的源代码供你修改!
    比如系统正在炒股,老板说我的数据在那台服务器需要切换数据库。炒股的软件可能是买的软件,它运行的类只是给你提供些属性和方法,首先你不可能停机修改代码哪怕一秒也不行原因自己想,就算停机也没有现成的代码给你修改!这样就限制了系统的可扩展性,那么Java的反射技术是其中的一个解决方案,后面将给大家一个参考案例
    Java的思想是一切皆为对象,那么想获取字节码的内容当然字节码也是对象,我们管它叫做类对象,即类也是对象我们叫做Class
    Class的定义如下:
class  Class{
   字节码文件中的字段;
   字节码文件中的构造函数;
   字节码文件中的一般函数;
}

 
二、获取字节码对象(类对象)的方法

 
1、Object类的getClass()方法
       Computer computer = new Computer();
       Class  c=computer.getClass();
 
2、class属性
Class c1=Computer.class;
 
3、使用Class.forName
       Class c=Class.forName("com.Computer");
 


 
 三、获取类对象的构造方法
 
 

 
package com.test;
 
import java.lang.reflect.Constructor;
 
public class Demo {
 
 public static void main(String[] args) throws Exception   { 
     Class c = Class.forName("com.test.Computer"); 
     System.out.println(c);
     
     Constructor constructor = c.getConstructor(String.class , int.class);
     Object obj = constructor.newInstance("联想电脑",888);
     Computer computer = (Computer)obj;
     computer.show();
 } 
}
 
class Computer{ <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字化与智能化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值