举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > java泛型方法具体实例 Java 泛型方法

java泛型方法具体实例 Java 泛型方法

2023-06-03 14:20 Java教程

java泛型方法具体实例 Java 泛型方法

java泛型方法具体实例

Java泛型方法是指在定义方法时使用泛型,这样可以使得方法可以接受不同类型的参数,并且返回不同类型的结果。它的优势在于可以减少代码量,提高代码复用性,并且能够有效地避免强制类型转换。

下面我们来看一个具体的例子:

public class GenericMethod {

    public static  void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }

    public static void main(String[] args) {

        Integer[] intArray = {1, 2, 3, 4, 5};

        Double[] doubleArray = {1.1, 2.2, 3.3, 4.4};

        Character[] charArray = {'H', 'E', 'L', 'L', 'O'};

        System.out.println("整型数组元素为:");
        printArray(intArray);  // 传递一个整型数组

        System.out.println("\n双精度型数组元素为:");
        printArray(doubleArray);  // 传递一个双精度型数组

        System.out.println("\n字符型数组元素为:");
        printArray(charArray);   // 传递一个字符型数组
    }
}

上面的代码中定义了一个名为printArray()的泛型方法,该方法接受一个T 类型的数组作为参数,然后遍历该数组并打印出来。在main()方法中分别定义了三个不同的数据(Integer、Double、Character)作为测试用例,然后将这三者作为参数传递到printArray()方法中。最后我们就能看到打印出来的三者都是正常输出。

Java 泛型方法

Java教程 - 如何在Java中创建泛型方法


可以创建一个包含在非泛型类中的通用方法。

public class Main {
  static <T, V extends T> boolean isIn(T x, V[] y) {
    for (int i = 0; i < y.length; i++) {
      if (x.equals(y[i])) {
        return true;
      }
    }
    return false;
  }

  public static void main(String args[]) {
    Integer nums[] = { 1, 2, 3, 4, 5 };
    if (isIn(2, nums)){
      System.out.println("2 is in nums");
    }
    String strs[] = { "one", "two", "three", "four", "five" };
    if (isIn("two", strs)){
      System.out.println("two is in strs");
    }
  }
}

上面的代码生成以下结果。


例子

下面的代码声明一个 copyList()通用方法。

import java.util.ArrayList;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    List<String> ls = new ArrayList<String>();
    ls.add("A");
    ls.add("B");
    ls.add("C");
    List<String> lsCopy = new ArrayList<String>();
    copyList(ls, lsCopy);
    List<Integer> lc = new ArrayList<Integer>();
    lc.add(0);
    lc.add(5);
    List<Integer> lcCopy = new ArrayList<Integer>();
    copyList(lc, lcCopy);
  }

  static <T> void copyList(List<T> src, List<T> dest) {
    for (int i = 0; i < src.size(); i++)
      dest.add(src.get(i));
  }
}

Java通用构造函数

构造函数可以是通用的,即使它们的类不是。例如,考虑以下短程序:

class MyClass {
  private double val;

  <T extends Number> MyClass(T arg) {
    val = arg.doubleValue();
  }

  void showval() {
    System.out.println("val: " + val);
  }
}

public class Main {
  public static void main(String args[]) {
    MyClass test = new MyClass(100);
    MyClass test2 = new MyClass(123.5F);
    test.showval();
    test2.showval();
  }
}

上面的代码生成以下结果。

阅读全文
以上是名动网为你收集整理的java泛型方法具体实例 Java 泛型方法全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们