首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

动态加载种的方式

2012-10-26 
动态加载类的方式import java.util.*import java.lang.reflect.*class ClassDemo{public static void ma

动态加载类的方式

import java.util.*;import java.lang.reflect.*;class ClassDemo{public static void main(String[] args) throws ClassNotFoundException{//动态加载类;hScanner scan=new Scanner(System.in);System.out.println("请输入一个你想创建的类");String className=scan.next();Class clazz=Class.forName(className);System.out.println(clazz.getName());Bird bird=new Bird("tom",2);Class clazz2=bird.getClass();System.out.println(clazz==clazz2);//一些基本操作;System.out.printf("%s是否是接口%b\n",clazz.getClass().getName(),clazz.isInterface());System.out.printf("%s是否死基本数据类型%b\n",clazz.getClass().getName(),clazz.isPrimitive());System.out.printf("%s是否是数组%b\n",clazz.getClass().getName(),clazz.isArray());System.out.printf("%s的父类是%s",clazz.getClass().getName(),clazz.getSuperclass().getName());System.out.println();//查看类的信息int m=clazz.getModifiers();System.out.printf("%s\t",Modifier.toString(m));if(clazz.isInterface()){System.out.println("interface");}else{System.out.print("class");}System.out.printf("\t");System.out.printf("%s",clazz.getSimpleName());System.out.println("\t\t{");Field [] fields=clazz.getDeclaredFields();for(Field field:fields){int n=field.getModifiers();System.out.printf("%s\t",Modifier.toString(n));System.out.printf("%s\t",field.getType().getSimpleName());System.out.printf("%s\t",field.getName());}Constructor [] cons=clazz.getDeclaredConstructors();for(Constructor con:cons){int p=clazz.getModifiers();System.out.printf("%s\t",Modifier.toString(p));System.out.printf("%s (){\n}\n",con.getName());}Method []methods=clazz.getDeclaredMethods();for(Method method:methods){int q=method.getModifiers();System.out.printf("%s\t",Modifier.toString(q));System.out.printf("%s\t ",method.getReturnType().getSimpleName());System.out.printf("%s\n; ",method.getName());}System.out.println("\t\t}");//实现类的动态加载有两个方法:一个是用forname一个是用加载器ClassLoader loader=bird.getClass().getClassLoader();Scanner scan1=new Scanner(System.in);String className1=scan1.next();Class clazz1=loader.loadClass(className1);System.out.println(clazz1.getSimpleName());}}

?

热点排行