方法我有兩個不同的枚舉:通行證枚舉類作爲參數傳遞給Java中
public enum A {
mass(10); // many other values omitted for clarity
private final int m;
private A(int m) { this.m = m; }
public int value() { return this.m; }
}
public enum B {
mass(100); // many other values omitted for clarity
private final int m;
private B(int m) { this.m = m; }
public int value() { return this.m; }
}
,並想通過枚舉類作爲參數傳遞給我的功能。從我發現SO,建議我可以通過類,但我不知道如何正確檢測和使用A或B枚舉函數體中其他答案:
public int mass(Class<?> clazz) {
// Is it the best way? How to avoid a bunch of ifs?
if (clazz == A.class) return A.mass.value();
if (clazz == B.class) return B.mass.value();
}
這看起來真的很醜,就好像你不需要這樣做,但它應該工作得很好。 – bmargulies
爲什麼不只是讓'A'和'B'實現一個getMass()方法的接口呢? – resueman