本文针对jdk6.0中java.lang.Class类的API进行了简单的实例应用,例子简单易懂,比较适合入门级阅读。
实例简介:
/*
*IncludeInnerClass类中包含了三种访问控制的内部类,并且以这三个内部类的引用对象和一个整型数作为属性,在外部类的方法中分别调用了 内部类的方法
*外部类有两个构造方法,一个默认构造方法,一个带一个整型参数的构造方法
*Class类的API大家可以直接查阅jdk手册
*getMethods()系列方法基本与getConstructors()系列方法类似,仅在后序文章中对getMethods()系列方法的一个特例做深入介绍,将涉及covariant return type 和bridge methods。
*/
package classTest;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
class IncludeInnerClass implements Runnable{
class DefaultInnerClass{
int i;
public DefaultInnerClass(){}
DefaultInnerClass(int i){
this.i = i;
}
void innerMethod(){
System.out.println("I am DefaultInnerClass.");
}
}
private class PrivateInnerClass{
int i;
PrivateInnerClass(){}
PrivateInnerClass(int i){
this.i = i;
}
void innerMethod(){
System.out.println("I am PrivateInnerClass.");
}
}
public class PublicInnerClass{
int i;
public PublicInnerClass(){}
PublicInnerClass(int i){
this.i = i;
}
void innerMethod(){
System.out.println("I am PublicInnerClass.");
}
}
DefaultInnerClass deic;
private PrivateInnerClass pric;
public PublicInnerClass puic;
int i;
public IncludeInnerClass(){
deic = new DefaultInnerClass(1);
pric = new PrivateInnerClass(2);
puic = new PublicInnerClass(3);
this.i=10;
}
private IncludeInnerClass(int i){
deic = new DefaultInnerClass(1);
pric = new PrivateInnerClass(2);
puic = new PublicInnerClass(3);
this.i=i;
}
public void method(){
deic.i