静的コンテキストでのジェネリック型の使用 質問する

静的コンテキストでのジェネリック型の使用 質問する
public static BTNode<E> treeCopy(BTNode<E> source)
{
     if(source == null)
         return null;
     else
     {
         BTNode left = BTNode.treeCopy(source.left);
         BTNode right = BTNode.treeCopy(source.right);
         return new BTNode(source.data, left, right);
     }

}

私の質問は、なぜ汎用タイプ E を静的コンテキストで使用できないのかということです。いくつかの回答を検索してみましたが、意味のあるものは見つかりませんでした。

ベストアンサー1

メソッド シグネチャでジェネリック型を宣言する必要があります。これは静的メソッドなので、他の場所からジェネリック情報を取得することはできません。したがって、ここで宣言する必要があります。

public static <E> BTNode<E> treeCopy(BTNode<E> source)
{
     if(source == null)
         return null;
     else
     {
         BTNode<E> left = BTNode.treeCopy(source.left);
         BTNode<E> right = BTNode.treeCopy(source.right);
         return new BTNode(source.data, left, right);
     }
}

おすすめ記事