接口中方法的通用返回类型

时间:2014-03-10 18:22:53

标签: java interface

我有一个节点接口:每个节点都有一个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;
} 

2 个答案:

答案 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