zoukankan      html  css  js  c++  java
  • java 泛型

    一、简单小例子。

     尖括号中包含的是形式类型参数formal type parameters),它们就如同一般的类型一样,可以在整个类的声明中被使用。

     当类被使用时,会使用具体的实际类型参数actual type argument)代替。

      形式类型参数的命名:尽量使用单个的大写字母(有时候多个泛型类型时会加上数字,比如T1,T2),比如许多容器集合使用E,代表element(元素),Map中用K代表键keys,V代表值。

     值得注意:基本数据类型调用泛型函数,返回对应的包装类型。

    public static void main(String[] args) {
            // 基本数据类型返回对应的包装类型
            Integer num = getGener(122);
            Character[] ch = new Character[] { 'w', 's', 'w' };
            getGener2(ch);
            System.out.println(num);
        }
    
        private static <T> T getGener(T o) {
            return o;
        }
        private static <T> T getGener2(T[] o) {
            T obj = o[2];
            return obj;
        }

     二、泛型类

    import java.util.Arrays;
    
    class Tool<T> {
    
        public  void reverse(T[] arr) {
            Arrays.sort(arr);
        }
    }
    
    public class Generics {
    
        public static void main(String[] args) {
            Tool<Integer>tool=new Tool<Integer>();
            Integer[]num={1,3,0,2};
            tool.reverse(num);
        }
    
    }

    三、泛型接口

    interface Dao<T> {
    
    }
    
    class Demo <T> implements Dao<T> {
    
    }

     四、限制泛型

    package generics;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class Generics {
    
        public static void main(String[] args) {
        ArrayList<Integer>arr=new ArrayList<Integer>();
        ArrayList<Object>objs=new ArrayList<Object>();
        lower(arr);
        lower(objs);
        }
    
        // 下限:Integer的父类
        public static void lower(Collection<? super Integer> o) {
    
        }
    
        // 上限:Number的子类
        public static void upper(Collection<? extends Number> o) {
    
        }
    }
  • 相关阅读:
    LeetCode:Remove Nth Node From End of List
    链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
    快速排序partition过程常见的两种写法+快速排序非递归实现
    LeetCode:Permutations, Permutations II(求全排列)
    LeetCode:3Sum, 3Sum Closest, 4Sum
    LeetCode:Two Sum
    判断一个图是否有环
    c++设计一个无法被继承的类
    设计模式--单例模式
    windows多线程同步互斥--总结
  • 原文地址:https://www.cnblogs.com/wswbk/p/6729803.html
Copyright © 2011-2022 走看看