JVMクラスキャスト例外エラーメッセージの解釈 - キャストできない元のタイプは何ですか

StackOverflow https://stackoverflow.com/questions/2154366

  •  23-09-2019
  •  | 
  •  

質問

LinuxでIBM JVMが実行されているJava生産システムがあります。
顧客は、ログに印刷された次の例外を報告します。
java.lang.ClassCastException: [B incompatible with java.lang.String
から返された個々の属性をキャストしようとするとき: javax.naming.directory.InitialDirContext(...)
この例外から、文字列に変換できなかったタイプは何ですか。 「B」とは何ですか?

通常、クラスキャストエラーメッセージは次のように見えるはずです。
java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String
しかし、ご覧のとおり、最初の印刷ではそうではありません。
私はBという名前の実際のクラスがあるかもしれないと思ったが、javax.Namingの下にあるクラスを見つけることができた...
ここで起こっている名前の難解はありますか?
私は今、文字列にキャストしようとする前に、インスタンスのクラスを印刷するバージョンを顧客に送信する予定です。
i.getClass().getCanonicalName()
しかし、これらのpingのポンは1週間かかります。もしあなたがアイデアを持っていて、その前に私を助けることができれば、それはスーパーになるでしょう!

役に立ちましたか?

解決

[B の配列です byte (すなわちa byte[])。に注意してください [ 名前の一部です。

を参照してください APIの Class.getName() それらの名前がどのように作成されるかに関するルールのため。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top