public Object return(String a)
{
if(a.equals("aa"))
return new AA();
if(a.equals("bb"))
return new BB();
else
return null;
}
{
if(a.equals("aa"))
return new AA();
if(a.equals("bb"))
return new BB();
else
return null;
}
解决方案 »
- Spring2.5换成Spring3.0出现Cannot cache an unknown entity异常
- 求一个操作系统高响应比调度算法的程序!
- commons.beanutils.ConversionException: No value specified
- 如何批量更改数据库字段值?
- 由java转向C++ 容易吗?
- 请教高手,jsp中怎么设置用户权限
- struts的<html:radio>标签问题
- J2EE Without EJB 大家给点看法.
- 怎样在windows服务中自动启动tomcat
- html中的div怎么用?
- 使用Myeclipse和hibernate3开发,遇到javax.servlet.ServletException: Cannot open connection的错误!
- action向jsp传值除了用表单以外还有没有其他方法
public abstract class Poly { void WhoAmI(){};
}public class Poly_A extends Poly{
void WhoAmI(){
System.out.println("I am Poly_A");
}
}
public class Poly_B extends Poly{
void WhoAmI(){
System.out.println("I am Poly_B");
}
}
import java.util.*;public class JLauncher { public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Class poly=Class.forName("Poly_A");
((Poly)poly.newInstance()).WhoAmI();
poly=Class.forName("Poly_B");
((Poly)poly.newInstance()).WhoAmI();
}catch(Exception exc){
exc.printStackTrace();
}
}}此程序演示了如何动态产生对象
void ddd();
}class aa implements Iddd {
...
}class bb implements Iddd {
...
}class cc implements Iddd {
...
}Class clazz = Class.forName(className);
Object obj = class.newInstance();
if (obj instanceof Iddd)
((Iddd)obj).ddd();针对特定的需求才能进行合理的设计,楼主没有描述需求,这是顺着楼主的思路走的。
/**
*
* @param daoObject //需要实现的相关类
* @param updateFieldName //方法名称
* @param updateFieldValue //获得内容
* @return
*/
public static String getParaFromObj ( Object curObj ,String FieldName ) throws Exception
{
String retFieldValue = "";
try {
Class curClass = curObj.getClass ();
// Find the method to call, and its parameter type
Method m = curClass.getMethod ( "get" + FieldName ,null );
// Try to invoke
Object object = m.invoke ( curObj ,null );
if ( object != null ) {
retFieldValue = String.valueOf ( object ).trim ();
} else {
retFieldValue = "";
}
} catch ( SecurityException e ) {
logger.debug ( e.getMessage () );
return "";
} catch ( NoSuchMethodException ex ) {
logger.debug ( ex.getMessage () );
return "";
}
return retFieldValue;
}上面的内容只是提供了一个思路,结合Struts的反射机制,可以达到你所设想的要求。以前我们的项目中就存在你所的内容,用这种方式,我们调用的时候(例如从一个form bean中取值)
String hesunName = WSObjectUtil.getParaFromObj ( viewcheckform ,"HESUN_NAME" );
就完成了一个取值过程。
congliu(取次花丛都不顾,半缘修道半缘君。) ( )
尽可能的做到之增加类就可以(相当于在系统动态配置类吧)是很简单的事情。
比如:
InitialContext ic = new InitialContext();
String className = (String) ic.lookup(JNDINames);
Class.forName(className).newInstance();
JNDI配置类名