我有一个节点接口:每个节点都有一个ID
。但是,不同类型的节点具有可以是整数或字符串的ID。如何使我的界面适应具有不同类型的相同内容?
public interface Hyperspacable {
public int getDimensioninality();
/*
* Returns the Hyperspacable's object at this dimension
*/
public double getDimValue(int depth);
public double getLat();
public double getLon();
public String getID();
/*
* Calculates the distance between two Hyperspacable objects of the same dimension
*/
public double distance(Hyperspacable e) throws DifferentDimensionException;
}
答案 0 :(得分:1)
如果将字符串解析为整数或整数解析为字符串怎么办?那么所有结果都是同一类型的?如果您需要再次使用该值,可以稍后再解析它。
String.valueOf(int)
Integer.valueOf(String)
答案 1 :(得分:1)
如果你真的需要两种不同的ID类型,我可以考虑几种可能性:你可以使你的界面通用,或者你可以用getID()
和{{1}两种方法替换getIntegerID()
方法(另一种类型适用时,其中一个将返回getStringID()
)。对于通用接口方法:
null
对于这两种方法,整数值ID类型必须返回public <T> interface Hyperspacable {
public T getID();
. . .
}
而不是Integer
。