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

    一,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());
        }
       
    }

  • 相关阅读:
    桥梁模式
    OpenGL中的功能与OSG对应功能 (摘)
    STL源码学习----lower_bound和upper_bound算法[转]
    [转载]GMT地形数据总结
    关于OPenGL和OSG的矩阵 (转)
    GEOS库 介绍 (转)
    一个小巧的C++Log输出到文件类 (转)
    如何优化,让电脑真正快起来(转)
    数据库的应用——直接从内存中读取osg节点 (转)
    OSG 实现跟随节点的相机(转)
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941948.html
Copyright © 2011-2022 走看看