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反射得到每一个类实例

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

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名.import java.io.File;import java.lang.reflect.Method;public class LoopApp {public static void main(String[] args) throws Exception {String

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

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

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

从jvm的角度看,使用new的时候,new的类可以没有加载在使用newInstance时候,就必须保证:1、这个类已经加载;2、这个类已经连接了.而完成上面两个步骤的正是class的静态方法forName()方法,这个静态方法调用了启动类加载器(就是加载javaAPI的那个加载器).

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