[解決済み] java.lang.Integer は java.lang.Long にキャストできません。
2022-02-18 07:34:41
質問
Webサービスで長い整数を受信することになっています。
long ipInt = (long) obj.get("ipInt");
ipInt値=2886872928でテストすると、成功します。 しかし、私は私のプログラムをテストし、ipIntの値= 167844168を置くとき、それは私にエラーを与える。
java.lang.ClassCastException: java.lang.Integer は java.lang.Long にキャストできません。
エラーは上記のコードを指しています。
参考までに、私のデータは JSON フォーマットです。
{
"uuID": "user001",
"ipInt": 16744168,
"latiTude": 0,
"longiTude": 0,
}
私のコードが両方のipInteger値を受け取ることができるようにするために、何か提案はありますか?
どのように解決するのですか?
両方
Integer
と
Long
のサブクラスです。
Number
ということで、使えるのではないでしょうか。
long ipInt = ((Number) obj.get("ipInt")).longValue();
によって返される値がどのようなものであっても動作するはずです。
obj.get("ipInt")
が
Integer
参照または
Long
を参照してください。となるデメリットがあります。
また
の場合、無言で継続します。
ipInt
が浮動小数点数として指定されている場合(例.
"ipInt": 1.5
のように、JSONの中で例外を投げることができます。
あなたは
できる
使用
instanceof
をチェックするために、代わりに
Long
と
Integer
を具体的に説明すると、かなり不格好になります。
関連
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み] メソッドがスーパータイプのメソッドをオーバーライドまたは実装していない - Overrideの場合
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】破損したjarファイル
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Javaの未処理例外について
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ResultSetの例外 - 結果セットの開始前
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】JLabelのテキストを中央に配置するには?
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】破損したjarファイル
-
[解決済み] テスト
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。