Java反射技术初级学习总结

反射机制是Java成为动态语言的一个关键特性,在运行中的Java程序对自身进行检查,或者说“内省”,并能直接操作程序的内部属性,这个机制允许程序在执行时可以通过反射API取得任何一个已知名称的类的信息,并能在执行时改变类的成员变量的内容或执行方法。

反射包:Java.lang.reflect.*  Constructor(构造器)  Method(方法)  Filed(属性)

获得Class对象的三种方法:

(1)通过Class.forName("完整的类名")

如:Class temp=Class.forName("com.xupt.entity.User");

(2)调用某个类的class属性来获取对应的Class对象,

如:Person.class  需要注意的是:需要导包进来

(3)调用对象的getclass()方法。

如:User use=new User();  use.getclass();

获取并查看类中的构造方法:

Constructor[] cons=c1.getDeclaredConstructors();
for(Constructor con:cons){
  System.out.println(Arrays.toString(con.getParameterTypes()));
}

通过构造器来产生对象:

Constructor con=c1.getConstructor(String.class,int.class);
Object obj=con.newInstance("hehe",2);

通过Method来获取类中的所有方法的具体内容:

Method[] methods=c1.getDeclaredMethods();
for(Method method:methods){
  System.out.println(method.getReturnType());//方法的返回值信息
  System.out.println(method.getName());//方法的名称
  System.out.println(Arrays.toString(method.getParameterType()));//方法的参数信息
}

//调用相关的方法
Method m=c1.getDeclaredMethod("cc",int.class);//"cc"为方法名,若是无参,则int.class不需要再写
m.setAccessible(true);//可访问private修饰的方法,让修饰符失效。
m.invoke(obj.newInstance(1));

查看类中的所有属性

Field[] fields=c1.getDeclaredFields();
for(Field field:fields){
  System.out.println(field.getType());
  System.out.println(field.getName());
}

  设置属性的话调用相应的setter方法即可

 

时间: 2024-11-06 03:35:47

Java反射技术初级学习总结的相关文章

Java反射技术学习总结

-------<a href="http://www.itheima.com/"">android培训</a>.<a href="http://www.itheima.com/" ">java培训</a>期待与您交流!---------- Java反射技术就是将java中的类的各个组成部分反射出来变为java中相应的数据类型获得. Java同样将类中的各个组成部分进行封装,变为一个个Java类. C

Android中Java反射技术的使用示例

import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * Android中Java反射技术的使用示例 * 在Java中描述字节码文件(xxx.class)的类叫Class * 反射的过程可视为剖析Class的过

Java远程技术介绍学习

Java远程技术介绍学习 RMI [既Remote Method Invoke 远程方法调用] 实现方式为,类extend了java.rmi.Remote接口,即成为存在于服务器端的远程对象,提供客户端访问. PS: extends了Remote接口的类或者其他接口中的方法若是声明抛出了RemoteException异常,则表明该方法可被客户端远程访问调用. 同时,远程对象必须实现java.rmi.server.UniCastRemoteObject类,这样才能保证客户端访问获得远程对象时,该远

小怪兽 Java反射技术 等你来打

Java反射技术,是java的难点,也是程序员进化过程中的必打小怪兽,这里就根据java api好好研究一下java的反射技术. Class Fields Methods 请先回忆一下[java类的定义]. 一.反射是什么 反射是什么?百度百科这样定义:JAVA反射机制是在运行状态下,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取对象信息以及动态调用对象方法的功能称为java语言的反射机制. 可以这样理解,大家小时候有木有玩过平

java反射技术实例

java反射技术实例?1. [代码][Java]代码     package com.gufengxiachen.java.reflectiontest; public class Person {private String name;private int age;private static int total;public Person(){super();total++;}public Person(String name,int age){super();this.name=name

java 反射技术

什么是反射?反射就是将字节码中的各种成分映射到相应的java类中来,java反射技术自JDK1.1以来就出现了,目前大多数流行的框架都采用了这种技术,可见其重要性,这篇文章将详细介绍我对java反射技术的一些研究. 代表字节码对象的Class java中所有的类都有自己特有的一份字节码,当程序调用该类时,JVM便会将这份字节码装载到内存中来.在java中主要有三种方法来得到相应的字节码对象. 通过类的实例的getClass()方法获取,如 Class clazz=new Date().getCl

【软件工程】JAVA反射技术

JAVA反射技术 Java 反射技术应用广泛,它能够配置:类的全限定名.方法和参数,完成对象的初始化,甚至是反射某些方法.这样就可以大大增强 Java 的可配置’性, pring IoC 的基本原理也是如此,当然 Spring IoC 的代码要复杂得多. Java 的反射内容繁多,包括对象构建.反射方法.注解.参数.接口等. 通过反射构建对象 Java 中允许通过反射配置信息构建对象,比如 ReflectServicelmpl.java 然后通过反射的方法去构建它 这里的代码就是生成一个对象,然

Java反射机制的学习

Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Java反射机制没啥用.或许在J2EE.J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该

[转载] Java反射机制的学习

本文转载自: http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Ja