`

反射

    博客分类:
  • j2se
 
阅读更多

第一:反射的概念

1.(1).java程序源文件(属性和方法)编译成.class文件,(2)将.class文件加载到内存。(3).创建对象,访问属性和方法
2:反射是通过一个类的class文件访问一个类中的所有成员(属性,方法)
3:反射的实质:将一个类对应的.class文件,封装成一个类(Class类)的对象。(就是把.class文件封装成对象)通过class类的文件,可以对相应的class文件进行操作。
4.步骤:其中首先获得类的Class对象,然后通过类的对象获取另外三个方法。这四个对象就是四个类
(1).获得Class对象。首先在内存中查找对应的类的.class文件,如果没有,就把指定类型的.class文件加载到内存(这是个大对象)
 注意: 当找不到这个java文件的时候就会出现异常。注意:这是个静态方法
(2).获得Field对象。获得class文件中描述的所有属性,其中getFields()方法返回的是class文件对象的公共属性(这是个小对象,把属性也封装成类了),
(3).获取Method对象。getDeclareMethod()是获得Class对象的所有公共方法(这也是一个小对象)
(4).获取Constructors对象。getConstructors是获得所有构造方法(这是个小对象)

第二:代码实现

package emp;

public class Emp {
 private String name;
 private int age;
 private int salar;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public int getSalar() {
  return salar;
 }
 public void setSalar(int salar) {
  this.salar = salar;
 }
 public Emp() {
  super();
  // TODO Auto-generated constructor stub
 }
 public Emp(String name, int age, int salar) {
  super();
  this.name = name;
  this.age = age;
  this.salar = salar;
 }
 @Override
 public String toString() {
  return "Emp [name=" + name + ", age=" + age + ", salar=" + salar + "]";
 }

}

 

 

public class TestClass {
 public static void main(String[] args) {
  try {
   Class<Emp> cls=(Class<Emp>)Class.forName("emp.Emp");//将这个java类的.class转变成Class类的对象
     Field[] fs = cls.getDeclaredFields();
     for(Field f:fs){
      System.out.println(f);
     }
     System.out.println("------------");
     Method[] ms= cls.getDeclaredMethods();
     for(Method m:ms){
      System.out.println(m);
     }
     System.out.println("------------");
     Constructor[]cs =   cls.getConstructors();
     for(Constructor c:cs){
      System.out.println(c);
     }
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

分享到:
评论

相关推荐

    Unity镜面反射脚本

    unity镜面反射脚本,包里4个文件 Mirror.cs :与shader互动的脚本,使用这组材质同时要把这个脚本拖给使用的物体才能生效 Mirror-BumpSpec.shader 实时镜面反射shader 可以配合法线贴图一起用 适用于平面物体 ...

    Java常用的反射方法

    反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...

    详解C# 利用反射根据类名创建类的实例对象

    “反射”其实就是利用程序集的元数据信息。 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间。 1、假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = ...

    反射机制反射Dao 反射机制

    反射反射反射反射反射反射反射反射反射反射反射反射反射反射反射反射

    matlab.rar_matlab_反射系数序列_反演算法_探地雷达 反演_谱反演

    首先,根据谱反演原理,详细推导了地层反射系数序列的计算公式以及反演所需的目标函数,并根据探地雷达波的特点,将计算公式和目标函数中的反射系数序列的奇偶分量用几何和电性参数替代,从而确立了地层几何和电性...

    JAVA反射机制详解视频

    (通过反射获取无参构造方法并使用) (通过反射获取带参构造方法并使用) (通过反射获取私有构造方法并使用) (通过反射获取成员变量并使用) (通过反射获取无参无返回值成员方法并使用) (通过反射获取带参带返回值成员...

    matlab计算反射阵单元相位(460652)_matlab反射阵相位_matlab反射阵_反射阵matlab_反射阵

    使用matlab计算反射阵天线单元的相位补偿

    利用反射生成泛型类对象

    反射和泛型是一种重要的解决途径。 此代码是一个生成泛型对象的类。 比如: Pool&lt;Point&gt; pool = new Pool(){}; Point p = pool.get(x, y); //在此构造Point对象 ... pool.put(p); 希望能帮助那些为查找泛型构造器、...

    P波入射C程序_P波反射系数计算_反射系数_

    计算P波入射时的反射P波、反射SV波的反射系数。

    java中反射的概念

    通过学习后,保证初学者对反射有一个很好的理解,有助于之后对反射的进一步学习。 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了...

    JavaScript实现的灯光反射效果

    JavaScript灯光反射效果,这个效果通过JS实现了灯光反射效果,很酷吧。 建议开发童鞋使用统一开发环境UDE来进行查看、调试、开发哦~~其属于MM应用引擎的应用开发部署工具,它是基于云计算基础架构,依托中国移动IDC...

    java反射知识点

    首先,下载此资源要明白什么是反射。 对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的...

    unity镜面反射脚本

    Mirror-BumpSpec.shader 实时镜面反射shader 可以配合法线贴图一起用 适用于平面物体 Mirror-AlphaBumpSpec.shader 实时镜面发射、透明材质,可以同时反射和透明效果,也可以配合法线贴图,适用于平面物体 Mirror-...

    java反射 java反射 java反射java反射

    java反射 java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射

    java_反射实战代码

    反射API可以获取程序在运行时刻的内部结构,反射API提供的动态代理是非常强大的功能,可以原生的实现AOP中的方法拦截功能,反射API就好像在看一个Java类在水中的倒影,知道Java类的内部结构,就可以和它们进行交互,...

    基于光频域反射技术的超弱反射光纤光栅传感技术研究

    采用超弱反射光纤光栅(FBG)结合光频域反射技术(OFDR),实现了大容量、高空间分辨率的准分布式光纤光栅传感网络的解调。通过对拍频信号分离的优化和非线性矫正,利用拍频信号的频谱信息,实现了高空间分辨率的光纤...

    基于泛型和反射的三层架构雏形(另一个旧版不能删除)

    同时,因为反射会带来性能损失,因此,可根据自己需求,针对每个类型轻松在两种模式之前切换,本例源码,测试实例俱全,而且代码浅显易懂,只要对泛型、反射、三层架构有一定了解的人都能轻松学习

    Rpp_Rps.zip_MATLAB 佐伯利兹方程 反射系数_P波 介质_p反射系数_p波反射系数_shoutefl

    画出当SV波入射泊松比为0.1的介质时,反射P波和SV的位移反射系数随入射角度的变化;进一步画出当泊松比从0到0.5变化时,反射系数的变化过程。

    利用java反射调用Android隐藏Api

    利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...

    matlab模拟光的反射折射.pdf

    matlab模拟光的反射折射.pdfmatlab模拟光的反射折射.pdfmatlab模拟光的反射折射.pdfmatlab模拟光的反射折射.pdfmatlab模拟光的反射折射.pdfmatlab模拟光的反射折射.pdf

Global site tag (gtag.js) - Google Analytics