java中发射的例子

前一段时间学习java的的反射机制,做了一下例子,供大家参考.
package org.reflect.reflecttest;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/***
* 反射演示类,该类中利用反射技术获得一个类中的所有信息
* @author clplain;
*
*/
public class ReflectDemo {
public static void getInfo(String packages){
try {
// Class stuCla = Student.class;//获得Student类的一个反射,通过类获得
// Class stuClass = new Student().getClass();//获得Student类的一个反射,通过对象获得
Class studentCla = Class.forName(packages);//获得Student类的一个反射,通过类获得
/**
* 获得属性
*/
Field[] fields = studentCla.getDeclaredFields();//获得类的所有属性
for(Field field : fields){
System.out.println("属性名:"+field.getName());//获得属性名
System.out.println("属性的类型:"+field.getType());//获得属性的类型
System.out.println("属性的访问权限:"+Modifier.toString(field.getModifiers()));//获得反问权限
}

System.out.println("*******************************************************");
/**
* 获得方法
*/
//获得所有方法
Method[] methods = studentCla.getDeclaredMethods();
//循环获得每个方法的信息
for(Method method :methods){
System.out.println("方法名:"+method.getName());//方法名
System.out.println("方法的返回类型:"+method.getReturnType());//获得方法的返回类型
System.out.println("方法的访问权限:"+Modifier.toString(method.getModifiers()));//方法的访问权限
System.out.println("参数列表:");
Class[] classes = method.getParameterTypes();//获得所有的参数列表
for(Class clas : classes){
System.out.println(clas);
}
}
System.out.println("************************************************************");
Constructor[] constructors = studentCla.getDeclaredConstructors();//获得所有构造方法
for(Constructor con : constructors){
System.out.println("构造方法名:"+con.getName());//构造方法名
System.out.println("访问权限:"+Modifier.toString(con.getModifiers()));
System.out.println("参数列表:");
Class[] clas = con.getParameterTypes();
for(Class claes : clas){
System.out.println(claes);
}
}

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
getInfo("org.reflect.entity.Student");//此处传入的参数为类的具体路径;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值