2

私は完全に困惑しています..簡単な解決策があるようです

private Byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new Byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}

次のエラーをスローします。

incompatible types
    required: java.lang.Byte[]
    found: byte[]
4

5 に答える 5

4

getBytes()from Stringはaを返し、byte[]あなたはそれに影響を与えようとしていByte[]ます。

byteはプリミティブByteですが、はラッパークラス(Integerやintのようなもの)です。

あなたができることは変化です:

private Byte[] arrayOfBytes = null;

に :

private byte[] arrayOfBytes = null;
于 2012-02-16T19:12:01.243 に答える
2

だから試してみてください:

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}
于 2012-02-16T19:12:09.053 に答える
2

バイトはオブジェクトですが、バイトはプリミティブです。整数と整数の違いのように。

于 2012-02-16T19:12:25.537 に答える
1

getBytes()byte[]は配列を返します。Byte[]アレイに割り当てています。

だから、これはうまくいくはずです

private byte[] arrayOfBytes = null;    

public Data(String input) {
    arrayOfBytes = new Byte[input.getBytes().length];
    arrayOfBytes = input.getBytes();
}

Byteクラスは、プリミティブ型のバイトの値をオブジェクトにラップします。Byte型のオブジェクトには、byte型の単一のフィールドが含まれています。

于 2012-02-16T19:14:05.207 に答える
1
public Data(String input) {
    arrayOfBytes = new byte[input.getBytes().length];// this line is useless
    arrayOfBytes = input.getBytes();
}
于 2012-02-16T19:16:35.240 に答える