java反射技术(一)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Java的反射技术功能十分强大,整理一些资料!!

(如需转载,请注明出处!)

Lesson: 检测类examing class

1.Retrieving Class Objects

获取一个Class对象(metadata)

a,从对象的实例获取。

Class c = mystery.getClass();//(return Class)

b,从子类的实例获取

TextField t = new TextField();

Class c = t.getClass();

Class s = c.getSuperclass();

c,知道类名,则可以把.class加入到名字之后来获取。

Class c = java.awt.Button.class;

d,假如类名在编译时是未知的,则可以使用Class.forName()方法来获取.

Class c = Class.forName(classString);

2.Getting the Class Name

获取类名称

c.getName();

例如:

import java.lang.reflect.*;

import java.awt.*;

class SampleName {

public static void main(String[] args) {

Button b = new Button();

printName(b);

}

static void printName(Object o) {

Class c = o.getClass();

String s = c.getName();

System.out.println(s);

}

}

3.Discovering Class Modifiers

检索修改符

a.通过getModifiers()方法获取一个整型标识值。

b.通过java.reflect.Modifier对象的isPublic, isAbstract, 和 isFinal方法判定此值.

例如:

import java.lang.reflect.*;

import java.awt.*;

class SampleModifier {

public static void main(String[] args) {

String s = new String();

printModifiers(s);

}

public static void printModifiers(Object o) {

Class c = o.getClass();

int m = c.getModifiers();

if (Modifier.isPublic(m))

System.out.println("public");

if (Modifier.isAbstract(m))

System.out.println("abstract");

if (Modifier.isFinal(m))

System.out.println("final");

}

}

4.Finding Superclasses

检索父类

例如:

import java.lang.reflect.*;

import java.awt.*;

class SampleSuper {

public static void main(String[] args) {

Button b = new Button();

printSuperclasses(b);

}

static void printSuperclasses(Object o) {

Class subclass = o.getClass();

Class superclass = subclass.getSuperclass();

while (superclass != null) {

String className = superclass.getName();

System.out.println(className);

subclass = superclass;

superclass = subclass.getSuperclass();

}

}

}

5.Identifying the Interfaces Implemented by a Class

检索指定类实现的接口

例如:

import java.lang.reflect.*;

import java.io.*;

class SampleInterface {

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航