[解決済み] java.lang.ClassCastException: java.util.LinkedHashMap は com.testing.models.Account にキャストできない。
2022-02-28 18:53:26
質問
以下のようなエラーが発生します。
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.testing.models.Account
を以下のコードに置き換えます。
final int expectedId = 1;
Test newTest = create();
int expectedResponseCode = Response.SC_OK;
ArrayList<Account> account = given().when().expect().statusCode(expectedResponseCode)
.get("accounts/" + newTest.id() + "/users")
.as(ArrayList.class);
assertThat(account.get(0).getId()).isEqualTo(expectedId);
ができない理由はあるのでしょうか?
get(0)
?
解決方法は?
この問題はJacksonに起因しています。どのクラスにデシリアライズするかについて十分な情報を持っていない場合、それは
LinkedHashMap
.
の要素タイプをJacksonに通知していないためです。
ArrayList
にデシリアライズしたいことがわからないのです。
ArrayList
の
Account
s. そのため、デフォルトにフォールバックしてしまいます。
代わりに、おそらく
as(JsonNode.class)
を処理し、その後に
ObjectMapper
を、レスト・アシュアードが可能にするよりもリッチな方法で使用することができます。 こんな感じです。
ObjectMapper mapper = new ObjectMapper();
JsonNode accounts = given().when().expect().statusCode(expectedResponseCode)
.get("accounts/" + newClub.getOwner().getCustId() + "/clubs")
.as(JsonNode.class);
//Jackson's use of generics here are completely unsafe, but that's another issue
List<Account> accountList = mapper.convertValue(
accounts,
new TypeReference<List<Account>>(){}
);
assertThat(accountList.get(0).getId()).isEqualTo(expectedId);
関連
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] 文字列の巻き方
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] チェックされていないキャストの警告に対処するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] JavaにおけるClassCastExceptionの説明