62,615
社区成员
发帖
与我相关
我的任务
分享
package co.com.comm;
public class Base {
private SymbolBase symbol = null;
public Base(){
symbol = new SymbolC1("String");
symbol.doPaser();
((SymbolC1) symbol).getSymbolStr();
}
public static void main(String[] args){
Base base = new Base();
}
}
package co.com.comm;
public class SymbolC1 extends SymbolBase{
public SymbolC1(String strVal) {
super(strVal);
// TODO 自動生成されたコンストラクター・スタブ
}
public void getSymbolStr(){
System.out.print("SymbolC1 getString!");
}
}
package co.com.comm;
public class SymbolBase {
private String strname = "";
public SymbolBase(String strVal){
this.strname = strVal;
}
public void doPaser(){
System.out.println("Base Paser!");
}
}
package co.com.comm;
import java.lang.reflect.Method;
public class Base {
private Class<?> symbol = null;
private Object obj = null;
public Base(){
/*symbol = new SymbolC1("String");
symbol.doPaser();
((SymbolC1) symbol).getSymbolStr();*/
try {
symbol = Class.forName("co.com.comm.SymbolC1");
Class[] params = {Class.forName("java.lang.String")};
String[] val = {"Test"};
obj = symbol.getConstructor(params).newInstance(val);
Method method = symbol.getMethod("doPaser", null);
method.invoke(obj, null);
method = symbol.getMethod("getSymbolStr", null);
method.invoke(obj, null);
} catch (Exception e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
public static void main(String[] args){
Base base = new Base();
}
}
symbol.doPaser();((SymbolC1) symbol).getSymbolStr();
public Base(){
try {
symbol = Class.forName("co.com.comm.SymbolC1");
//Class[] params = {Class.forName("java.lang.String")};
//String[] val = {"Test"};
// obj = symbol.getConstructor(params).newInstance(val);
obj = symbol.getConstructor(new Class[]{String.class}).newInstance(new Object[]{"test"});
//这不用Class.forName("java.lang.String")
Method method = symbol.getMethod("doPaser", null);
method.invoke(obj, null);
method = symbol.getMethod("getSymbolStr", null);
method.invoke(obj, null);
} catch (Exception e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}