【问题标题】:Calling a Method that has Generic Parameters调用具有通用参数的方法
【发布时间】:2015-02-15 17:20:04
【问题描述】:

我正在尝试理解一些源代码。 如何在 main 中调用这个方法?

public void introSort(T[] array, int max_depth)
    {
        System.out.println(array.length);
    }

我只想在我的 main 方法中返回给定数组的长度。如果这有任何帮助,则该方法位于具有此声明的类中:

public class IntroSort<T extends Comparable<T>> extends AbstractSort<T> {

[我知道这是泛型类型,但我对 Java 中该概念的理解太少,无法回答我的问题。]

【问题讨论】:

  • 这和泛型有什么关系?这是一个数组。使用其length 字段。
  • 好的,那你怎么声明那个类型的数组,让我调用那个方法呢?

标签: java generics methods call


【解决方案1】:

数组元素的类型是IntroSort类的类型变量T。这是IntroSort 实例的示例,类型参数设置为Integer

Integer[] array = {1, 2, 3, 4};
IntroSort<Integer> obj = new IntroSort<>();
obj.introSort(array, 1);

编译器会根据IntroSort 的声明将TInteger 匹配,这也意味着数组必须是Integer 类型。

【讨论】:

    【解决方案2】:

    T 只是指回你的类规范中的 T。

    如果您有 IntroSort 的实例,只需使用与实例化类相同的数组类型调用其上的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2012-04-16
      • 2020-12-09
      相关资源
      最近更新 更多