タイプのジェネリックメソッド

St.Antario

私は次のインターフェースを持っています:

public interface Caster{

    public boolean tryCast(Object value);

}

およびその実装:

public class IntegerCaster{

    public boolean tryCast(Object value){
        try{
            Integer.class.cast(value);
            return true;
        } catch (ClassCastException e){
            return false;
        }
   }
}
public class DateCaster{

        public boolean tryCast(Object value){
            try{
                Date.class.cast(value);
                return true;
            } catch (ClassCastException e){
                return false;
            }
       }
}

そのような実装を一般的にすることは可能ですか?次のように実装できないため、typeパラメーターを使用してCasterを取得して宣言することはできません。

public interface Caster<T>{

    public boolean tryCast(Object value);

}

public class CasterImpl<T> implements Caster<T>{

    public boolean tryCast(Object value){
        try{
            T.class.cast(value); //fail
            return true;
        } catch (ClassCastException e){
            return false;
        }
   }
}
コンスタンチン・ヨフコフ

Generic内に、によってパラメータ化され挿入する必要がありますClassTCasterImpl

このようなもの:

public class CasterImpl<T> implements Caster<T> {

    private Clazz<T> clazz;

    public CasterImpl(Class<T> clazz) {
        this.clazz = clazz;
    }

    public boolean tryCast(Object value){
        try{
            clazz.cast(value);
            return true;
        } catch (ClassCastException e){
            return false;
        }
   }
}

補足として:Casterインターフェース内でtype-parameterを使用しないため、インターフェースがGenericである理由はわかりません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ジェネリックメソッドパラメーターのタイプ

分類Dev

Javaジェネリックメソッドタイプ引数

分類Dev

ジェネリックList <>タイプの拡張メソッド

分類Dev

ジェネリックメソッドタイプパラメータ宣言

分類Dev

非ジェネリックインターフェイスのジェネリックメソッド

分類Dev

インターフェイス内のジェネリックメソッド

分類Dev

実行時のジェネリックメソッドパラメーターのタイプの決定

分類Dev

rawタイプのジェネリックメソッドのオーバーライド

分類Dev

ジェネリックメソッドとのインターフェース

分類Dev

.NETジェネリックメソッドで、実際のパラメータタイプを取得する方法

分類Dev

異なるタイプのジェネリックパラメーターを持つメソッドを持つジェネリッククラス

分類Dev

Typescriptのジェネリックス-インターフェイスメソッドとプロパティ

分類Dev

特定のタイプのみのジェネリッククラスのc#メソッド

分類Dev

タイプDataTypeでジェネリックメソッドを使用する

分類Dev

EntityFrameworkタイプをジェネリックメソッドに渡します

分類Dev

指定されたタイプのジェネリックメソッド/クラスカスタム実装

分類Dev

typescriptでジェネリッククラスのプロトタイプにメソッドを追加する方法

分類Dev

ジェネリックファクトリメソッドのUnityタイプ登録

分類Dev

ジェネリックリターンのメソッド

分類Dev

Javaメソッドに任意のタイプのジェネリックリストを返す方法

分類Dev

TypeScriptで特定のタイプのジェネリック型の拡張メソッドを作成する方法

分類Dev

推論メソッド-別のタイプのジェネリック型である戻り値の型

分類Dev

指定されたタイプのリストを返すジェネリックC#メソッド

分類Dev

ジェネリックメソッドから元のコレクションタイプを返す方法

分類Dev

Javaのジェネリックメソッドパターン

分類Dev

Springデータ-ドメインオブジェクトの継承とジェネリックメソッド

分類Dev

StackFrameから実際のタイプのジェネリックメソッドを取得します

分類Dev

ジェネリックメソッドで2番目の引数タイプのみを設定する

分類Dev

メソッド内のジェネリックのタイプを制限する目的は何ですか?

Related 関連記事

  1. 1

    ジェネリックメソッドパラメーターのタイプ

  2. 2

    Javaジェネリックメソッドタイプ引数

  3. 3

    ジェネリックList <>タイプの拡張メソッド

  4. 4

    ジェネリックメソッドタイプパラメータ宣言

  5. 5

    非ジェネリックインターフェイスのジェネリックメソッド

  6. 6

    インターフェイス内のジェネリックメソッド

  7. 7

    実行時のジェネリックメソッドパラメーターのタイプの決定

  8. 8

    rawタイプのジェネリックメソッドのオーバーライド

  9. 9

    ジェネリックメソッドとのインターフェース

  10. 10

    .NETジェネリックメソッドで、実際のパラメータタイプを取得する方法

  11. 11

    異なるタイプのジェネリックパラメーターを持つメソッドを持つジェネリッククラス

  12. 12

    Typescriptのジェネリックス-インターフェイスメソッドとプロパティ

  13. 13

    特定のタイプのみのジェネリッククラスのc#メソッド

  14. 14

    タイプDataTypeでジェネリックメソッドを使用する

  15. 15

    EntityFrameworkタイプをジェネリックメソッドに渡します

  16. 16

    指定されたタイプのジェネリックメソッド/クラスカスタム実装

  17. 17

    typescriptでジェネリッククラスのプロトタイプにメソッドを追加する方法

  18. 18

    ジェネリックファクトリメソッドのUnityタイプ登録

  19. 19

    ジェネリックリターンのメソッド

  20. 20

    Javaメソッドに任意のタイプのジェネリックリストを返す方法

  21. 21

    TypeScriptで特定のタイプのジェネリック型の拡張メソッドを作成する方法

  22. 22

    推論メソッド-別のタイプのジェネリック型である戻り値の型

  23. 23

    指定されたタイプのリストを返すジェネリックC#メソッド

  24. 24

    ジェネリックメソッドから元のコレクションタイプを返す方法

  25. 25

    Javaのジェネリックメソッドパターン

  26. 26

    Springデータ-ドメインオブジェクトの継承とジェネリックメソッド

  27. 27

    StackFrameから実際のタイプのジェネリックメソッドを取得します

  28. 28

    ジェネリックメソッドで2番目の引数タイプのみを設定する

  29. 29

    メソッド内のジェネリックのタイプを制限する目的は何ですか?

ホットタグ

アーカイブ