たとえば、enum
またはがString
あり、そのパラメーターの値に基づいてディスパッチしたい場合、繰り返しパターンがあります。
public void myMethod(String parameter) {
if(parameter.equals(something)) {
doSomething();
} else if(parameter.equals(somethingElse)) {
doSomethingElse();
}
}
if
長いorcase
ステートメントを取り除くための慣用的な方法は何ですか? 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)