看你的昵称还不错。就帮你实现,具体请看api文档/*
* Created on 2003-5-25
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*//**
* @author youyongming
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import java.lang.reflect.*;public class test1 {
private int number = 5;
public Integer f1()
{
System.out.println("f1");
return new Integer(1);
}
public Integer f2()
{
System.out.println("f2");
return new Integer(1);
}
public Integer f3()
{
System.out.println("f3");
return new Integer(1);
}
public Integer f4()
{
System.out.println("f4");
return new Integer(0);
}
public Integer f5()
{
System.out.println("f5");
return new Integer(0);
}
public static void main(String[] args)
{
try{//载入该类
Class c = Class.forName("test1");
//循环五次
for (int i=1; i <= 5; i++)
{
//找到方法映射
Method m = c.getMethod("f"+i, null);
//调用函数
Integer ii = (Integer)m.invoke(c.newInstance(), null);
//如果返回false则跳出循环
if (ii.intValue() == 1)
continue;
else
break;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
* Created on 2003-5-25
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*//**
* @author youyongming
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import java.lang.reflect.*;public class test1 {
private int number = 5;
public Integer f1()
{
System.out.println("f1");
return new Integer(1);
}
public Integer f2()
{
System.out.println("f2");
return new Integer(1);
}
public Integer f3()
{
System.out.println("f3");
return new Integer(1);
}
public Integer f4()
{
System.out.println("f4");
return new Integer(0);
}
public Integer f5()
{
System.out.println("f5");
return new Integer(0);
}
public static void main(String[] args)
{
try{//载入该类
Class c = Class.forName("test1");
//循环五次
for (int i=1; i <= 5; i++)
{
//找到方法映射
Method m = c.getMethod("f"+i, null);
//调用函数
Integer ii = (Integer)m.invoke(c.newInstance(), null);
//如果返回false则跳出循环
if (ii.intValue() == 1)
continue;
else
break;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
--
Goog idea!
我也有一个想法,在责任呈现水平而非垂直状态的情况下,使用Mediator模式,或许更好。大家认为呢?
dayn9(无知者无罪)能否详细阐述一下
“工作流中的链状方法调用,抽象为责任链模式可能较妥当。”
SureBeiJing(自由自在) 能否详细阐述一下
“在责任呈现水平而非垂直状态的情况下,使用Mediator模式,或许更好”
谢谢
switch(0) {
case 1:
if(f1()) break;
case 2:
if(f2()) break;
case 3:
if(f3()) break;
……
……
}
}
public void f() {
switch(0) {
case 1:
if( !f1() ) break;
case 2:
if( !f2() ) break;
case 3:
if( !f3() ) break;
……
……
}
}