0

NetBeansとEclipseでクラスを作成すると、奇妙な動作をします。

次のクラスはEclipse(juno)でOKをコンパイルしますが、netbeans(7.3)は、「MyComparatorは抽象ではなく、Comparableの抽象メソッドcompareTo(Object)をオーバーライドしない」と言っています。ソースはバージョン1.7を使用するように設定されています。

import java.io.*;
import org.apache.hadoop.hbase.filter.WritableByteArrayComparable;

public class MyComparator extends WritableByteArrayComparable {
protected int offset;

public MyComparator () {
}

public MyComparator (byte[] mask, int offset) {
       //...
}

@Override
public void readFields(DataInput in) throws IOException {
      // do something
}

@Override
public void write(DataOutput out) throws IOException {
      // do something
}

public int compareTo(byte[] value) {
    //do something here
}
}

NetBeansでも機能させるにはどうすればよいですか?

編集:hbaseのバージョンは0.92.1です-抽象クラスは例えば見つけることができます。ここ:http ://archive.cloudera.com/cdh4/cdh/4/hbase-0.92.1-cdh4.0.0/apidocs/org/apache/hadoop/hbase/filter/WritableByteArrayComparable.html

4

1 に答える 1

0

Eclipseでどのようにコンパイルされたのかわかりません。WritableByteArrayComparable の異なるバージョンが、Eclipse およびネット Bean クラス パスに存在する可能性があります。

しかし、WritableByteArrayComparable は抽象クラスであり、その抽象メソッドをすべて実装していません。リンクを確認してください。

少なくともこれは実装されていません

public abstract int compareTo(byte [] value, int offset, int length);
于 2013-03-14T10:07:21.773 に答える