ホームページ > バックエンド開発 > C++ > Java でジェネリックを使用してクラスの派生を決定するにはどうすればよいですか?

Java でジェネリックを使用してクラスの派生を決定するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-24 19:02:14
オリジナル
557 人が閲覧しました

How to Determine Class Derivation with Generics in Java?

Javaジェネリック環境での相続関係を判断

質問:

一般的なプロジェクトの使用では、指定されたタイプオブジェクトに指定された汎用クラスが割り当てられているかどうかを判断する必要があります。クラスの一般的な特性により、

メソッドの使用は失敗します。

IsSubclassOf例:

次のクラスレベル構造を検討してください:

目標は、テストクラスがジェネリッククラスから派生しているかどうかを判断することです。

<code class="language-java">public class GenericClass<T> implements GenericInterface<T> {
}

public class Test extends GenericClass<SomeType> {
}</code>
ログイン後にコピー
解決策:

Javaは、この問題の解決策を提供します。最初に、実用的な機能を作成します:

さて、テストがgeneclassから派生しているかどうかを確認するには、次のコードを使用してください。

このメソッドは、階層構造(汎用を含む)をチェックして、継承関係を決定します。強力で柔軟なソリューションを提供します。 ここでは、一般的なパラメーターを考慮せずに元のタイプが一致しているかどうかを判断する必要があるため、直接使用していることに注意してください。 以前のバージョンでは、この状況でnullまたは誤ったタイプを返すことができ、判断の失敗が生じる場合があります。 改良されたバージョンはより信頼性が高くなります。
<code class="language-java">static boolean isSubclassOfRawGeneric(Type generic, Type toCheck) {
    while (toCheck != null && toCheck != Object.class) {
        Type cur = toCheck instanceof ParameterizedType ? ((ParameterizedType) toCheck).getRawType() : toCheck;
        if (generic == cur) {
            return true;
        }
        toCheck = toCheck.getSuperclass();
    }
    return false;
}</code>
ログイン後にコピー

以上がJava でジェネリックを使用してクラスの派生を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート