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;
        }
    }
  • 相关阅读:
    专利申请流程
    安装Fedora16与Windows7共存双系统
    rpm检查依赖性
    C++中的static函数和extern关键字
    asp.net 浏览服务器文件
    如何用批处理文件写:获取当前日期的前一天
    有一个无效 SelectedValue,因为它不在项目列表中。
    .net 4.0 检测到有潜在危险的 Request.Form 值。
    ckeditor 在C#中使用
    使用任务计划程序自动执行任务
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7346893.html
Copyright © 2011-2022 走看看