String strClassType;用来保存获取到的要生成的Frame类名
Object obj=Class.forName(strClassType).newInstance();if(obj instanceof cx1)
//是cx1
{
do converter or something
}
if(obj instanceof cx2)
//is cx2
{
do converter or something
}
Object obj=Class.forName(strClassType).newInstance();if(obj instanceof cx1)
//是cx1
{
do converter or something
}
if(obj instanceof cx2)
//is cx2
{
do converter or something
}
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*/
public interface BaseIntf {
public void printSelf();
}ClassRlz1.java:
package test.classtest;
/**
* @aixy
*/
public class ClassRlz1 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz1");
}}ClassRlz2.java:
package test.classtest;
/**
* @author aixy *Aug 7, 2003
*
*/
public class ClassRlz2 implements BaseIntf { /* (non-Javadoc)
* @see test.classtest.BaseIntf#printSelf()
*/
public void printSelf() {
System.out.println("this is ClassRlz2");
}}TestMain.java:
package test.classtest;
/**
* @author aixy *
*/
public class TestMain { public static void main(String[] args) {
String className = "test.classtest.ClassRlz2";
BaseIntf Cl = null;
try {
Object bi = null;
try {
bi = Class.forName(className).newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
System.out.println(bi.toString());
if (bi instanceof ClassRlz1) {
Cl = (ClassRlz1) bi;
} else if (bi instanceof ClassRlz2) {
Cl = (ClassRlz2) bi;
} else {
System.out.println("error");
}
} catch (ClassNotFoundException e) {
System.out.println("class not found");
}
Cl.printSelf();
}
}
执行结果:
test.classtest.ClassRlz2@3ac748
this is ClassRlz2
主 题: 用JAVA实现图形化流程定制的功能,用户通过拖拽绘制流程,提交后经流程信息和节点之间的关系写入数据库,大家提点思路就好!
作 者: phoenix7789 (火鸟)
问题点数: 200
Class clazz = classloader.loadclass("ClassA");
InterfaceA ia = (InterfaceA)clazz.newInstance();
注:
ClassA impelements InterfaceA;