1. ホーム
  2. java

[解決済み] Scalaでバイト配列を宣言するには?

2022-02-17 16:54:51

質問

Scalaでは、バイト配列は次のように宣言できます。

val ipaddr: Array[Byte] = Array(192.toByte, 168.toByte, 1.toByte, 9.toByte)

これはあまりにも冗長です。Java の

byte[] ipaddr = {192, 168, 1, 1};

のためエラーとなることに注意してください。 . という文字列の中に

InetAddress.getByAddress("192.168.1.1".toByte)

解決方法は?

最短でできるのは

val ipaddr = Array[Byte](192.toByte, 168.toByte, 1, 9)

あなた しなければならない 変換する 192168 は符号付きバイトの範囲外([-128, 127])であり、有効なバイト・リテラルではないため、バイトに変換します。

なお、Javaの場合も同様で、以下のようにするとコンパイルエラーになります。

byte[] ipaddr = {192, 168, 1, 1};

192 と 168 をバイトにキャストする必要があります。

byte[] ipaddr = {(byte)192, (byte)168, 1, 1};