zdly.net
当前位置:首页 >> 利用jAvA反射机制,通过一个对象获得完整的包名和类名 >>

利用jAvA反射机制,通过一个对象获得完整的包名和类名

public class Fanshe { public static void main(String[] args) { String str = new String(); Class clazz=str.getClass(); System.out.println(clazz.getName()); System.out.println(clazz.getSimpleName()); } }

java程序:import java.lang.reflect.Field;import java.lang.reflect.Modifier;public class Main { public static void main(String[] args) { String className = "java.lang.Math"; //类名(含包名) try { Class> clazz = Class.forName(className); Field[]

Java.lang.Class getDeclaredFields() 返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段.Java.lang.reflect.Field getName() 返回此 Field 对象表示的字段的名称.getGenericType() 返回一个

先通过IO,定位到这个包通过File.list得到一个包含这个包下所有class的文件的数组.循环这个数组,用包名拼接每一个遍历出来的文件的名字,得到每一个完整的类名(即,包名加类名)通过class.forname反射得到每一个类实例

给你代码.这个类直接放到eclipse中可以运行,如果不是,File root = new File(System.getProperty("user.dir") + "\\src"); 改成你指写的src目录,其编译好的类也要在classpath中,才能运行.-----------------------------------------------------------------

获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMethos()方法.待获取的类:12345678910111213141516171819202122232425262728293031323334353637383940414243444546 package com.aaron.

import java.lang.reflect.*; import java.util.*;class DumpMethods { public static void main(String args[]) { DumpMethods d=new DumpMethods();d.getClassOverrideMethods("DEF");d.getClassOverloadMethods("DEF");}public List

对象.gerClass().getName()就是了,对象时谁的,最后就是谁的全名,不会有内部类的区别如果没有对象那就是:类名.class.getName(),不过这样是闲的无聊,有类名,再返回字符串形式的类名

你的需求是:得到类中指定类型的属性集合吧,类似于需要Field[] getFields(String type) 这样的函数,目前java尚未提供这样的api.还是需要遍历的

java中利用反射获取方法:1.先找到方法所在类的字节码2.找到需要被获取的方法 Class类中获取方法:public Method[] getMethods();获取包括自身和继承(实现)过来的所有的public方法Method不支持泛型<>,即后面不接<> public

相关文档
lyhk.net | zxpr.net | rpct.net | 596dsw.cn | nnpc.net | 网站首页 | 网站地图
All rights reserved Powered by www.zdly.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com