泛型的上下限定义

class Info<T>{
    private T var;
    public T getVar(){
        return var;
    }
    public void setVar(T var){
        this.var=var;
    }
    public String toString(){
        return this.var.toString();
    }
}
public class GenericsDemo17 {
public static void main(String[] args) {
    Info<Integer> i1=new Info<Integer>();
    Info<Float> i2=new Info<Float>();
    Info<String> i3=new Info<String>();
    i1.setVar(30);
    i2.setVar(30.1f);
    i3.setVar("vonkenmo");
    fun1(i1);
    fun1(i2);
//    fun1(i3);
    fun2(i3);   
}
public static void fun1(Info<? extends Number> i3){
    System.out.println(i3+",");
}
public static void fun2(Info<? super String> i3){
    System.out.println(i3+",");
}
}

泛型的上下限定义

时间: 2024-10-13 15:30:05

泛型的上下限定义的相关文章

Lua程序设计 泛型for的定义

泛型for在循环过程内部保存了迭代器函数.实际上他保存着3个值:一个迭代器函数.一个恒定状态和一个控制变量. 泛型for的语法如下:   for <var-list> in <exp-list>  do   end  其中,<var-list>是一个或多个变量名的列表,以逗号分隔:<exp-list>是一个或多个表达式的列表,同样以逗号分隔.通常表达式列表只有一个元素,即一句迭代器工厂的调用.    for k, v in pairs(t) do print

C#泛型List 的定义、作用、用法

定义:List类表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索.排序和操作的方法. 作用:泛型最常见的用途是泛型集合我们在创建列表类时,列表项的数据类型可能是int,string或其它类型,如果对列表类的处理方法相同,就没有必要事先指定数据类型,留待列表类实例化时再指定.相当于把数据类型当成参数,这样可以最大限度地重用代码,保护类型的安全以及提高性能. List的一般用法所属命名空间: System.Collections.Genericpublic class List:ILis

泛型的基本定义及使用

泛型 1. 基本概念: 范例: class Point<T>{//T的类型未知 T x; T y; Point(T x, T y){ this.x=x; this.y=y; } public void getPoint(){ System.out.println("x="+x+",y="+y); } } public class StaticClass{ public static void main(String[] args){ Point<I

c# 泛型List的定义、作用、用法

定义:List<T>类表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索.排序和操作的方法. 作用: 泛型最常见的用途是泛型集合 我们在创建列表类时,列表项的数据类型可能是int,string或其它类型,如果对列表类的处理方法相同, 就没有必要事先指定数据类型,留待列表类实例化时再指定.相当于把数据类型当成参数,这样可以最 大限度地重用代码,保护类型的安全以及提高性能. List的一般用法 所属命名空间: System.Collections.Generic public class

泛型 T的定义&lt;2&gt;

因为最近重新看了泛型,又看了些反射,导致我对Object.T(以下代指泛型).?产生了疑惑. 我们先来试着理解一下Object类,学习Java的应该都知道Object是所有类的父类,注意:那么这就意味着它的范围非常广!首先记住这点,如果你的参数类型时Object,那么的参数类型将非常广! <Thinking in Java>中说很多原因促成了泛型的出现,最引人注目的一个原因就是为了创造容器类.这个要怎么来理解呢?我的理解是,可以抛开这个为了创造容器类这个,而是回到泛型的目的是限定某种类型上来.

泛型 T的定义

public <T> T getMapper(Class<T> type, SqlSession sqlSession) { MapperProxyFactory mapperProxyFactory = (MapperProxyFactory)this.knownMappers.get(type); if(mapperProxyFactory == null) { throw new BindingException("Type " + type + &quo

Java泛型:泛型的定义(类、接口、对象)、使用、继承

地址   http://blog.csdn.net/lirx_tech/article/details/51570138 1. 设计泛型的初衷: 1) 主要是为了解决Java容器无法记忆元素类型的问题: i. 由于Java设计之初并不知道会往容器中存放什么类型的元素,因此元素类型都设定为Object,这样就什么东西都能放了! ii. 但是这样设计有明显的缺点: a. 取出元素的时候必须进行强制类型转换(尽管集合在运行时里面元素的"运行时类型"不变,即元素的getClass返回的还是最初

5、泛型

jdk1.5 好处: 1.将运行时的异常提前至编译时 2.避免了无谓的强转 常见应用: ArrayList<String> list = new ArrayList<String>(); // 里面存储的是String类型的数据类型 注意:泛型无多态,左右两边必须一致(推荐),或者只写一边(为向上兼容) 自定义泛型:一个数据类型的占位符或者一个数据类型的变量 1.泛型方法 : 参数化类型,将类型由原来的具体类型参数化,类型也定义为参数形式(类型形参),在使用时传入具体的类型(类型形

跟王老师学泛型(九):泛型拾遗

泛型拾遗 主讲教师:王少华 QQ群:483773664 学习目标 掌握泛型方法与类型通配符的区别 泛型与方法重载 泛型与数组 一.泛型方法和类型通配符的区别 (一)大多数时候,可以使用泛型方法来替换类型通配符 比如这样一个需求:定义一个方法,接收一个任意集合,并打印出集合中的所有元素.泛型方法和类型通配符都可以实现 1 2 3 4 5 6 7 8 9 10 11 12 13 public class Need {     public <T> void printCollection(Coll