Ale*_*May 2 java enums interface
我需要定义一个接口来重新定义哈希集之类的东西。
所以我有 get(byte key) 类型的方法。由于我无法使用像 String 这样的描述性键,因此我正在寻找一种通用方法来定义接口的某些实现中可用的键。我想为此使用枚举。但是是否可以在接口中强制定义此类枚举?
为了弄清楚我的意思,让我们看一个实现该接口的示例类:
public class ByteHashsetImpl implements ByteHashset {
public enum Key {
STATE_A,
STATE_B,
STATE_C;
}
public enum Value {
VALUE_A,
VALUE_B,
VALUE_C;
}
public void get(Key k) {
/**/
}
}
Run Code Online (Sandbox Code Playgroud)
我想确保每个实现都定义并使用自己的枚举,称为“键”和“值”。这使得可以使用类似于ByteHashsetImpl.Key接口的每个实现的方法来访问键/值。
是否有可能,或者除了像编码奎德线这样的非正式定义之外还有其他选择吗?
您不能强制创建此类枚举,但可以强制类型参数为枚举:
public interface Frobnicator<E extends Enum<E>> {
void frobnicate(E value);
}
enum Bar {
X, Y;
}
class BarFrobnicator implements Frobnicator<Bar> {
@Override
public void frobnicate(Bar value) {
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下, aFrobnicator 可以简单地重用现有的enum类,但EinFrobnicator将始终是一个enum类型。
| 归档时间: |
|
| 查看次数: |
6376 次 |
| 最近记录: |