• 泛型接口


    一,Demo1
    public interface Demo <T>{
        public void print(T param);
    }

    public class DemoImpl1<T> implements Demo<T> {
        public void print(T param)
        {
            System.out.print("param="+param);
        }
    }
    public class GenDemo15 {
        public static void main(String[] args)
        {
            Demo<String> demo=new DemoImpl1<String>();
            demo.print("hello!");
        }
    }

    二,Demo2

    public interface Demo <T>{
        public void print(T param);
    }
    public class DemoImpl2 implements Demo<DemoImpl2>{
        public void print(DemoImpl2 param)
        {
            System.out.print(param);
        }
    }
    public class GenDemo15 {
        public static void main(String[] args)
        {
            //实现泛型接口1
            //Demo<String> demo=new DemoImpl1<String>();
            //demo.print("hello!");
            //实现泛型接口2
            Demo<DemoImpl2> demo=new DemoImpl2();
            demo.print(new DemoImpl2());
        }
    }

    三,泛型方法

    泛型除了在类中定义之外,还可以在方法上定义,而且在方法上使用泛型,此方法所在的类不一定是泛型的操作类。

    public class GenDemo2 {
        public <T> T print(T param)
        {
            return param;
        }   
    }

    public class GenDemo7 {

        public static void main(String args[])
        {
            GenDemo2 d2=new GenDemo2();
            System.out.print(d2.print(1));
            Integer i[]=fun(1,2,3,4,5,6);
            for(int j:i)
                System.out.print(j);
        }
        public static <T> T[] fun(T...param)
        {
            return param;
        }
    }
    四,泛型嵌套


    public class Info<T> {
        public T param;

        public T getParam() {
            return param;
        }

        public void setParam(T param) {
            this.param = param;
        }
    }
    public class Person<T> {
    public T info;
    public T getInfo() {
        return info;
    }
    public void setInfo(T info) {
        this.info = info;
    }
    }

    public class Test {

        public static void main(String args[])
        {
            Person<Info<String>> per=new Person<Info<String>>();

            per.setInfo(new Info<String>());
            per.getInfo().setParam("java");
            System.out.print(per.getInfo().getParam());
        }
       
    }

  • 相关阅读:
    C库中与时间相关的函数
    读书笔记之: 程序员的自我修养——链接,装载与库(第1,2部分)
    STL中常用的一些算法
    C++ STL中的迭代器技术
    程序员面试宝典2(数据结构与算法)
    C/C++程序员面试宝典2
    读书笔记之: 数据库系统概论(第4版)
    C库中重要字符串函数的简要分析及实例
    程序员求职成功路(3)
    C库中对函数的可变参数的支持
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941948.html
Copyright © 2020-2023  润新知