0
問題があることで、私はデータ構造のためのラボを持っているし、先生はあなたがそれは、hashCodeのパラメータの ipValueの呼び出しのためのLongオブジェクトを返しますハッシュ(IPアドレス)をオーバーライド ときに 『クラスIpAddressValueHasherは調理人を実装』を作成」私に尋ねる。 私はインタフェースメソッドを異なるNumber戻り値の型でオーバーライドすることはできますか?
。インターフェース(intを返した)長いを返すメソッドをオーバーライドする方法をすべてのヘルプを知らないかのポインタは、まず
public class IpAddressValueHasher implements Hasher<IpAddress> {
@Override
public long hash(IpAddress ip) { //error on this line, can't return long
long ipValue = ip.getIpValue();
return ipValue;
}
}
public class IpAddress //new class
{
private long ipValue=0;
private String dottedDecimal="0.0.0.0";
public IpAddress(){}
public IpAddress(String dec)
{
setDottedDecimal(dec);
}
public boolean setDottedDecimal(String s)
{
if(s==null || s.length() == 0)
return false;
dottedDecimal = s;
ipValue = 0;
String [] tokens = s.split("[.]");
for(String tok : tokens){
int subVal = Integer.parseInt(tok);
ipValue = ipValue * 256 + subVal;
} // end for
return true;
}
public long getIpValue(){ return ipValue; }
public String getDottedDecimal(){ return dottedDecimal; }
public String toString(){ return dottedDecimal + ", " + Long.toHexString(ipValue); }
} // end class IpAddress
public interface Hasher<E> {
public int hash(E elem);
}
'パブリックインターフェイス調理人 {パブリックVのハッシュ(KのELEMを)。 } ' –
私は教師がコードを提供したので、インターフェース自体を変更することはできません。新しいクラスコードを作成するときにのみこれを行うにはどうしますか? –
インタフェースのポイントは、インタフェースを定義することです。これを実現する唯一の方法はElloitの提案です –