[英]Call Methods in Sequence
我有5種不同的方法
public void met1(){}
public void met2(){}
public void met3(){}
public void met4(){}
public void met5(){}
我想從1到5調用此方法,有什么方便的方法可以做到這一點。
我不想一個一個地調用,也不想將方法調用放在另一個方法中。
我怎樣才能做到這一點??
我相信您可以通過以下方式進行反射:
YourClass classInstance = new YourClass();
for (int i = 1; i < 6; i++) {
Method yourMethod = YourClass.class.getMethod("met" + i);
method.invoke(instance);
}
還沒有測試過,所以不能保證。
您是否研究過流利的設計模式? http://www.javacodegeeks.com/2013/01/fluent-object-creation.html
示例將是這樣的:
myObject.met1().met2().met3().met4().met5().result();
您可以通過反射來完成此操作,如前面提到的其他答案。 如果可能,通常避免反射。
實際上,最常見的設計模式就是責任鏈。
http://en.wikipedia.org/wiki/Chain-of-responsibility_pattern
按名稱調用方法的唯一方法是通過反射。 請參閱本文以了解如何執行此操作:
這樣的事情應該起作用:
for (int i = 1; i < 6; i++){
java.lang.reflect.Method method;
try {
method = this.getClass().getMethod("met" + i);
method.invoke(this);
} catch (SecurityException e) {
// ...
} catch (NoSuchMethodException e) {
// ...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.