带有泛型的类或接口的调用与实现:

  • Post author:
  • Post category:其他


//带有泛型的类:
     /**
      * ArrayList
      * E:Element元素,实际思想就是一个变量而已
      *  ArrayList<Integer>, E 接受到的类型,就是Integer类型
      *     public  class ArrayList <E>{
      *         public boolean add(E e){
      *
      *         }
      *     }
      * */
//带有泛型的接口
        /**
         * public interface List<E>{
         *     abstract boolean add(E e)
         * }
         * */
        //实现类,先实现接口 ,不理会泛型
        /**
         * public class ArrayList <E> implements List<E>{
         *
         * }
         * 好处:调用者new ArrayList<String > 后期创建对象的时候可以自己指定数据类型
         * */

public class Pass {
    static class human extends Pass{
        private String name;
        private int age;

        @Override
        public String toString() {
            return "human{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }

        public human(String name, int age) {
            this.name = name;
            this.age = age;
        }

    }
    static class Xiao extends Pass{
        private  String name;

        @Override
        public String toString() {
            return "Xiao{" +
                    "name='" + name + '\'' +
                    '}';
        }

        public Xiao(String name) {
            this.name = name;
        }
    }
    public static void main(String[] args) {
        List<human> name=new  ArrayList<>();
        HashSet<Xiao> srr=new HashSet<>();
        name.add(new human("情为之所困",1314));
        srr.add(new Xiao("爱为之所迷"));
        iterator(name);
        iterator(srr);
    }
    // ? extends 共同的父类 -->作用:上限限定泛型  只能通配 Pass或(共同父类的子类对象)
    // ?super 共同的父类 -->作用:下限限定泛型   只能通配 Pass 或 (共同父类对象)
    public static void iterator(Collection<? extends Pass> E){
       Iterator <? extends Pass>it= E.iterator();
       while (it.hasNext()){
           System.out.println(it.next());
       }
    }
}

转载于:https://www.cnblogs.com/yangnaidong/p/10476732.html