1. ホーム
  2. java

[解決済み] 型の安全性。オブジェクトからのキャストがチェックされない

2022-02-08 10:39:09

質問

Actionクラスにオブジェクトをキャストしようとすると、警告が表示されます。

Type safety: Unchecked cast from Object to Action<ClientInterface>

Action<ClientInterface> action = null;
try {
 Object o = c.newInstance();
 if (o instanceof Action<?>) {
  action = (Action<ClientInterface>) o;
 } else {
  // TODO 2 Auto-generated catch block
  throw new InstantiationException();
 }
 [...]

よろしくお願いします。

解決方法は?

はい - これは当然の結果です。 タイプ・イレーザー . もし o のインスタンスです。 Action<String> を渡して使おうとしたときに初めて問題がわかります。 ClientInterface 文字列の代わりに

を使って警告を消すことができます。

@SuppressWarnings("unchecked")

を関数アノテーションとして使用することができますが、根本的な問題を簡単に解決することはできません :(