java反射 interface_java反射1 - 学步园

发布时间:2025-12-10 11:48:32 浏览次数:10

java反射是用来在yunhx

这里提供了java反射中常用的一些API函数的使用。

首先看看Class,反射的核心类,所有的操作都是围绕该类来生成的,Class类十分的特殊,和其他的类一样继承与Object类,其实例用来表达java在运行时的classes和interface ,也用来表达enum、array、primitive Java types(boolean, byte, char, short, int, long, float, double)以及关键字void。当一個class被加载,或当类加载器(class loader)的defineClass()被JVM 调用,JVM 便自动的产生一個Class object实例。

获得Class的途径可以有以下几种:

------1. 运用getClass()

注:每个class 都有此函数

String str = "abc";

Class c1 = str.getClass();

------2.运用etSuperclass()

Class.getSuperclass();

Button b = new Button();

Class c1 = b.getClass();

Class c2 = c1.getSuperclass();

-----3. 运用static 方法 Class.forName()

Class c1 = Class.forName ("java.lang.String");

Class c2 = Class.forName ("java.awt.Button");

Class c3 = Class.forName ("java.util.LinkedList$Entry");

Class c4 = Class.forName ("I");

Class c5 = Class.forName ("[I");

------4. 运用  .class 語法

Class c1 = String.class;

Class c2 = java.awt.Button.class;

Class c3 = Main.InnerClass.class;

Class c4 = int.class;

Class c5 = int[].class;

-----运用 primitive wrapper classes 的TYPE 语法

Class c1 = Boolean.TYPE;

Class c2 = Byte.TYPE;

Class c3 = Character.TYPE;

Class c4 = Short.TYPE;

Class c5 = Integer.TYPE;

Class c6 = Long.TYPE;

Class c7 = Float.TYPE;

Class c8 = Double.TYPE;

Class c9 = Void.TYPE;

Java Reflection中常用的函数使用方法如下:

java 代码

packagecn.com.reflection;

importjava.lang.reflect.Modifier;

publicclassReflectTester2 {

/**

* @param args

*/

publicstaticvoidmain(String[] args) {

String str="hejianjie";

Class cls=str.getClass();

//获取该对象所属于的包

Package pack=cls.getPackage();

String packName=pack.getName();

System.out.println("包名:"+packName);

//获取对象所属类的修饰符

intflag=cls.getModifiers();

String modiferName=Modifier.toString(flag);

System.out.println("类修饰符:"+modiferName);

//判断是否接口

booleanbool=Modifier.isInterface(flag);

System.out.println("该Class是接口乎:"+bool);

//返回类的名字

String classname=cls.getName();

System.out.println("该Class所代表对象的完整的包名是:"+classname);

//返回父类的Class的名字

Class supClass=cls.getSuperclass();

String supClassName=supClass.getName();

System.out.println("父类的Class的名称:"+supClassName);

//返回该Class所代表的对象实现的接口的Class的数组

Class[] iterClass=cls.getInterfaces();

for(inti=0;i

Class classType=iterClass[i];

System.out.println(classname+"类所实现的接口:"+classType);

}

}

}

程序运行结果如下:

java 代码

包名:java.lang

类修饰符:publicfinal

该Class是接口乎:false

该Class所代表对象的完整的包名是:java.lang.String

父类的Class的名称:java.lang.Object

java.lang.String类所实现的接口:interfacejava.io.Serializable

java.lang.String类所实现的接口:interfacejava.lang.Comparable

java.lang.String类所实现的接口:interfacejava.lang.CharSequence

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477