动态加载类的用法

1.动态加载类实现

首先要创建一个Word类的类类型,在通过类类型创建一个满足OfficeAble(标准)的一个对象s,通过对象s就可以调用Word类中的方法。

 

import T1.OfficeAble;


public class Office1 {
  public static void main(String[] args) {
      try {
        Class c=  Class.forName("T1.Word");  //传入什么类就 加载什么类              
        //创建对象
        OfficeAble s=(OfficeAble)c.newInstance();
        //调用方法
        s.start();
    } catch (Exception e) {
        e.printStackTrace();
    }}
}

 

OfficeAble(标准)的创建

package T1;

public interface OfficeAble {//创建一个接口来规范对象
    
    public void start();
       public void rr();
}

需要加载的类

package T1;

public class Word {
    public void start() {
        System.out.println("word调用成功啦!");
    }
    public void rr() {}
    
}

2.类类型的反射作用(可以查看一个类的属性和方法)

package T1;

import java.lang.reflect.Method;
import java.text.Annotation;
import java.text.DateFormat.Field;
import java.util.Arrays;

public class ClassTest {
  public static void main(String[] args) {
      Class  d=Word.class;
      //获取类的类名
System.out.println(d.getName());
//获取不包含包的类名 System.out.println(d.getSimpleName());
Method[] mes
=d.getDeclaredMethods();//获取方法 java.lang.reflect.Field[] sl= d.getDeclaredFields();//获取属性 System.out.println(Arrays.toString(mes)); for(int a=0;a<sl.length;a++){ String g=sl[a].getType().getName(); System.out.println(g); } System.out.println(Arrays.toString(sl)); } }

 

posted on 2016-05-31 13:53  lgshiwoo  阅读(217)  评论(0编辑  收藏  举报