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

  • 相关阅读:
    JDBC学习总结
    RAD,Eclipse切換界面語言(中日英)
    Eclipse生成EXE文件(可视化Login/读取文件)
    2019年10月 历史记录追加
    如何将eclipse的java导出成exe
    EAR、JAR、WAR(IT)
    Linux命令(IT)
    aarch64 cross compile 交叉编译 opencv
    cross compile vlc 播放器
    cross compile 交叉编译 ffmpeg
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941948.html
Copyright © 2011-2022 走看看