关于JAVA反射使用

有理想的草根 有理想的草根 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟在使用Java的反射机制时遇到了一些问题。希望得到大家的帮助。

有两个类一个叫
SymbolBase里面有doPaser方法。
一个SymbolC1继承SymbolBase类,实现自己的一些方法。

而在另一个执行类中。Base类中我在定义的时候定义SymbolBase但是在实例的时候采用SymbolC1。由于有很多个SymbolCX所以需要使用反射根据名称进行实例。


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!");
}
}



我的问题是,我想在Base中通过Class.forName来自动根据一个字符串实例化相应的SymbolCX。即SymbolC1,SymbolC2,而且像上面那样使用。
我能想到的是使用Java的反射机制但是具体应该如何实现。看了很多反射实例也没找到方法。
希望高手给予解决,小弟在此谢过。
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
有理想的草根
Java SE 62,620 成员 307,251 内容