关于JAVA反射使用
小弟在使用Java的反射机制时遇到了一些问题。希望得到大家的帮助。
有两个类一个叫
SymbolBase里面有doPaser方法。
一个SymbolC1继承SymbolBase类,实现自己的一些方法。
而在另一个执行类中。Base类中我在定义的时候定义SymbolBase但是在实例的时候采用SymbolC1。由于有很多个SymbolCX所以需要使用反射根据名称进行实例。
我的问题是,我想在Base中通过Class.forName来自动根据一个字符串实例化相应的SymbolCX。即SymbolC1,SymbolC2,而且像上面那样使用。
我能想到的是使用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的反射机制但是具体应该如何实现。看了很多反射实例也没找到方法。
希望高手给予解决,小弟在此谢过。
...全文
相关推荐
java反射 java反射 java反射java反射
总之,Java反射机制为开发者提供了极大的灵活性,能够在运行时探索和操作类的内部细节,从而实现高度动态的程序设计。然而,过度使用反射可能会降低代码可读性和性能,因此应当权衡利弊,合理运用。
详解Java 反射和反射的应用场景
- 反射操作也可能破坏封装性,可能导致安全问题和意外行为,所以需谨慎使用。总的来说,Java反射机制是Java语言中的一个重要工具,它允许程序在运行时具有更高的灵活性和可扩展性。
Java 反射创建get set方法及反射方法的调用
这种方式虽然灵活,但在实际开发中应当谨慎使用,因为它可能会降低代码的性能和可维护性。了解反射机制的基本原理对于深入理解Java编程语言具有重要意义。
java 反射的使用
**接口反射** - 在Java中,可以通过反射来实现接口。首先,获取接口的Class对象,然后使用`getMethods()`获取接口的所有抽象方法。
Java使用反射调用方法
"Java使用反射调用方法,通过Method类的invoke方法来实现对类中特定方法的调用。"在Java编程中,反射是一种强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。当我们需要


Java SE
