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

    范例:一个简单泛型案例

    class Point<T>{ //此处地T可以表示任意一个引用类型,在类实例化的时候进行定义
        private T x;
        private T y;
        public void setX(T x){
            this.x = x;
        }
        public void setY(T y){
            this.y = y;
        }
        public T getX(){
            return x;
        }
        public T getY(){
            return y;
        }
    }
    public class Test{
        public static void main(String args[]){
            Point<String> p = new Point<String>();//在类实例化的时候确定类型
            p.setX("java");
            p.setY("oracle");
            System.out.println(p.getX());
            System.out.println(p.getY());
    
        }
    }

    通配符的使用

    package com.javaxuexi.hu;
    class Message<T>{
        private T msg;
        public void setMsg(T msg){
            this.msg = msg ;
        }
        public T getMsg(){
            return msg ;
        }
    }
    public class TestDemo{
        public static void main(String args[]){
            Message<String> msg = new Message<String>();
            msg.setMsg("java");
            print(msg);
        }
        public static void print(Message<?> temp){ //此时问好表示通配符
            System.out.println(temp.getMsg());
        }
    }

      ?extends 类:设置通配符的下限 (?extends Number)表示只可以是Number类或者是其子类Integer,Double...

      ?super 类:设置通配符的上限  (?super String) 表示只可以是String或者是其父类Object;

    泛型接口

    package com.java.demo;
    interface IMessage<T>{
        public void print(T t);
    }
    class MessageImpl<T> implements IMessage<T>{  //在子类上面继续设置泛型
        public void print(T t) {
            System.out.println(t);
            
        }
        
    }
    public class TestDemo{
        public static void main(String args[]){
            IMessage<String> mgs = new MessageImpl<String>();
            mgs.print("hello word");
        }
    }
    package com.java.demo;
    interface IMessage<T>{
        public void print(T t);
    }
    class MessageImpl implements IMessage<String>{  //在子类上面继续设置泛型
        public void print(String t) {
            System.out.println(t);
            
        }
        
    }
    public class TestDemo{
        public static void main(String args[]){
            IMessage<String> mgs = new MessageImpl();
            mgs.print("hello word");
        }
    }

     泛型方法

    package com.java.demo;
    public class TestDemo{
        public static void main(String args[]){
            System.out.println(fun("hello word"));
        }
        public static <T> T fun(T t){//泛型方法的的返回值类型有传入参数类型决定
            return t;
        }
    }
  • 相关阅读:
    如何撤销Git操作?
    SpringBoot Controller接收参数的几种方式盘点
    全面解析Spring中@ModelAttribute注解的用法
    Java中将字符串转为驼峰格式
    如何将Map键值的下划线转为驼峰
    JS如何获取地址栏url后面的参数?
    解决wordpress 5.3更新后Uncaught Typeerror: $ is not a function
    小程序如何判断用户(后台使用Django)
    服务器 Web服务器 应用服务器区别联系
    C语言和Python语言在存储变量方面的不同
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7346893.html
Copyright © 2011-2022 走看看