• java泛型学习教程,java泛型的使用,java泛型类和泛型方法


    java泛型学习教程-java泛型的使用-java泛型类和泛型方法

    当参数不确定的时候可以说使用泛型

    1、类定义泛型

    class Box<T> {
    
        private T data;
    
        public Box() {
    
        }
    
        public Box(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    
    }
    public class GenericTest {
    
        public static void main(String[] args) {
    
            Box<String> name = new Box<String>("corn");
            System.out.println("name:" + name.getData());
        }
    
    }

    2、方法定义泛型

     /** 
         * 这才是一个真正的泛型方法。
         * 首先在public与返回值之间的<T>必不可少,这表明这是一个泛型方法,并且声明了一个泛型T
         * 这个T可以出现在这个泛型方法的任意位置.
         * 泛型的数量也可以为任意多个 
         *    如:public <T,K> K showKeyName(Generic<T> container){
         *        ...
         *        }
         */
        public <T> T showKeyName(Generic<T> container){
            System.out.println("container key :" + container.getKey());
            //当然这个例子举的不太合适,只是为了说明泛型方法的特性。
            T test = container.getKey();
            return test;
        }

    3、泛型通配符

    public void showKeyValue1(Box<?> obj){
        Log.d("泛型测试","key value is " + obj.getKey());
    }

     4、静态方法和泛型方法

    public class StaticGenerator<T> {
        ....
        ....
        /**
         * 如果在类中定义使用泛型的静态方法,需要添加额外的泛型声明(将这个方法定义成泛型方法)
         * 即使静态方法要使用泛型类中已经声明过的泛型也不可以。
         * 如:public static void show(T t){..},此时编译器会提示错误信息:
              "StaticGenerator cannot be refrenced from static context"
         */
        public static <T> void show(T t){
    
        }
    }
  • 相关阅读:
    非静态成员的sizeof
    Android中java.lang.ClassNotFoundException: ***.**** in loader dalvik.system.PathClassLoader[/data/app
    手机 SIM卡的EF
    android 获取手机ip的三种方式
    获取图片倒影效果
    python基础
    Python学习_数据处理split方法
    Python学习_从文件读取数据和保存数据
    Python学习_列表推导和Lambda表达式
    python学习_数据处理编程实例(一)
  • 原文地址:https://www.cnblogs.com/liubaihui/p/15915236.html
Copyright © 2020-2023  润新知