zoukankan      html  css  js  c++  java
  • JAVA泛型方法与类型限定

     泛型方法可以定义在普通类中,也可以定义在泛型类中
    1 class ArrayAlg{
    2     public static <T> T getMiddle(T...a){
    3         return a[a.length/2];
    4     }
    5 }
     
    注意:类型变量放在修饰符后( public static )
    当调用泛型方法时,方法名前尖括号中放入具体的类型
    String middle=ArrayAlg.<String>getMiddle("John","Q.","Public");
     
    大多数情况下,方法调用可以省略<String>类型参数
    String middle=ArrayAlg.getMiddle("John","Q.","Public");

     
    类型变量的限定
    有时,类或方法需要对类型变量加以约束
     1 class ArrayAlg{
     2     public static <T> T min(T[] a){
     3         if(a==null||a.length==0) return 0;
     4         T smallest=a[0];
     5         for(int i=1;i<a.length;i++)
     6             if(smallest.compareTo(a[i])>0)
     7                 smallest=a[i];
     8             return smallest;
     9     }
    10 }
    上例min方法内部,变量smallest类型为T,而且smallest必须有compareTo方法程序才能正常运行
    解决的方法是限制T实现Comparable接口
    public static <T extends Comparable> T min(T[] a)...
    一个类型变量或通配符可以有多个限定,限定类型用&分隔
    T extends Comparable & Serializable
  • 相关阅读:
    第二十章 用户管理(一)
    第十九章 Linux中常用字符的特殊含义
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/xpang0/p/7754874.html
Copyright © 2011-2022 走看看