当我有例如 anenum
或 aString
并且我想根据该参数的值进行调度时,会出现一种重复模式:
public void myMethod(String parameter) {
if(parameter.equals(something)) {
doSomething();
} else if(parameter.equals(somethingElse)) {
doSomethingElse();
}
}
摆脱冗长if
或case
陈述的惯用方法是什么?我正在考虑类似 python 中的单调度泛型函数之类的东西,但我想根据值而不是类型进行调度。
@fun.register(int)
def _(arg, verbose=False):
if verbose:
print("Strength in numbers, eh?", end=" ")
print(arg)
@fun.register(list)
def _(arg, verbose=False):
if verbose:
print("Enumerate this:")
for i, elem in enumerate(arg):
print(i, elem)