我正在尝试在 java 中设计一个通用的 Key 类来表示主 pojo 键。
这些值可以是各种类型,例如 BigInteger、String、Uuid。我正在寻找实现这样一个类的最佳选择。我当前的实现看起来像这样。
任何人都可以帮助我进行更准确的实施或确定当前实施的问题吗?我还没有实现 equals 方法。欢迎任何指点。
此类需要与 GWT 兼容。
@SuppressWarnings("serial")
@GwtCompatible
public class Key<T extends Serializable> implements Serializable {
public enum KeyType {
BigInt, Uuid, String ;
}
private final T keyValue ;
private final KeyType keyType ;
Key() {
keyValue = null;
keyType = null;
}
public Key(T value){
this.keyValue = value ;
this.keyType = determineKeyType(value);
}
/**
* @return
*/
private KeyType determineKeyType(Object value) {
if ( isValueUuid(value))
return KeyType.Uuid ;
else if (value instanceof BigInteger)
return KeyType.BigInt ;
else
return KeyType.String;
}
/**
* @param value
* @return
*/
private boolean isValueUuid(Object value) {
// TODO Auto-generated method stub
return false;
}
public Key(T val, KeyType tp){
this.keyValue = val ;
this.keyType = tp;
}
public KeyType getKeyType(){
return keyType ;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
public T getKeyValue(){
return this.keyValue ;
}
}