1. ホーム

[解決済み】ジェネリッククラスにスタティックメソッド?

2022-04-10 03:40:54

質問

Javaで、次のようなものを持ちたい。

class Clazz<T> {
  static void doIt(T object) {
    // ...
  }
}

しかし、私は

非静的な型Tへの静的な参照を作ることができない

ジェネリックの基本的な使い方以上のことを理解していないため、あまり意味がわからない。このテーマについてインターネットで調べても、あまり情報が見つからなかったので、しょうがない。

そのような使い方が可能かどうか、同様の方法でどなたか明らかにしていただけないでしょうか。また、なぜ私の最初の試みは失敗したのでしょうか?

解決方法は?

クラスの汎用型パラメータは、静的メソッドや静的フィールドでは使用できません。クラスの型パラメータは、インスタンスメソッドとインスタンスフィールドにのみスコープがあります。静的フィールドや静的メソッドの場合は、クラスのすべてのインスタンスで共有され、たとえ異なる型パラメータを持つインスタンスであっても共有されます。

あなたの問題では、クラスの型パラメータを使う必要はなさそうですね。もし、あなたがやろうとしていることをもっと詳しく書いてくだされば、より良い方法を見つけるお手伝いができるかもしれません。