パッケージ定義されていないクラスの参照方法

1171 ワード

http://www.cjsdn.net/post/view?bid=1&id=155189
パッケージ構造を持たない種類のため、importはできません.
直接使用すると、コンパイラがエラーを報告します.
newで直接オブジェクトを作成する以外に連想します.
クラスのインスタンスは、クラス.forName().newInstance()によって取得することもできます.
そこでテスト例を書きました.

//MyShow.java
//
public class MyShow {
public String show() {
return "None Package";
}
}

//MyClass.java
//
package com.zcjl.test.base;

import java.lang.reflect.Method;

public class MyClass {
public static void main(String[] args) {
try {
Object obj = Class.forName("MyShow").newInstance();
Class clazz = obj.getClass();
Method method = clazz.getMethod("show", null);
String returnValue = (String) method.invoke(obj, null);
System.out.println(returnValue);
} catch (Exception e) {
e.printStackTrace();
}
}
}
ビンゴ!コンパイルにより、MyClass.classを実行し、コンソールに戻ります.
None Package