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?我尝试搜索几个答案,但找不到能使人 NumPy 的答案。

最佳答案

您需要在方法签名中声明泛型类型。由于这是静态方法,因此无法从其他任何地方获取通用信息。所以需要在这里声明:

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);
     }
}

10-06 01:58