Java泛型限定 草稿

import java.util.*;

class GD6
{
  public static void main(String[] args)
{
ArrayList<Person> a = new ArrayList<Person>();
a.add(new Person("a"));
a.add(new Person("b"));
a.add(new Person("c"));

ArrayList<Stu> al1 = new ArrayList<Stu>();
al1.add(new Stu("A"));
al1.add(new Stu("B"));
al1.add(new Stu("C"));
printCln(a);
}

public static void printCln(ArrayList<Person> al)
{
Iterator<Person> it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}

class Person
{
String name;
String getName()
{
return this.name;
}
Person(String name){
this.name = name;
}
}

class Stu extends Person
{
String name;
Stu(String name)
{
super(name);
}
}
时间: 2024-10-28 21:25:56

Java泛型限定 草稿的相关文章

Java泛型解析(02):通配符限定

Java泛型解析(02):通配符限定 考虑一个这样的场景,计算数组中的最大元素. [code01] public class ArrayUtil { public static <T> T max(T[] array) { if (array == null || 0 == array.length) { return null ;} T max = array[0]; for (int i = 1; i < array.length; i++) { if (max.compareTo(

Java泛型/泛型限定

一.泛型概述: 1.来源:1.5jdk出现的新特性:用于解决安全问题,是一个安全机制: //下面代码,编译不报错,运行报错,加上泛型给与集合类型限定: 2.好处:减少运行时的问题,在编译时体现:避免强制转换的麻烦: 3.关键字:<数据类型> public class Test { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("1")

2017.4.5 Java 泛型

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 假定我们有这样一个需求:写一个排序方法,能够对整形数组.字符串数组甚至其他任何类型的数组进行排序,该如何实现? 答案是可以使用 Java 泛型. 使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序.然后,调用该泛型方法来对整型数组.浮点数数组.字符串数组等进行排

java 泛型 窜讲

一.为什么使用泛型      复用性:泛型的本质就是参数化类型,因而使用编写的泛型代码可以被许多不同类型的对象所复用.      安全性:在对类型Object引用的参数操作时,往往需要进行显式的强制类型转换.这种强制类型转换需要在运行时才能被发现是否转换异常,通过引入泛型能将在运行时才能检查类型转换,提前到编译时期就能检查. 二.自定义泛型 java中自定义泛型分为三种:泛型类.泛型接口.泛型方法. 下面使用一个案例演示泛型类.泛型方法,泛型接口类似,所以不再演示. // 自定义泛型类publi

Java泛型_上界extends_下界super

?Java泛型_上界extends_下界super ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T或是T的子类 <? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型(T)的超类型(父类型),直至Object 当使用 Upper Bound 通配符时 如下代码, /**  * 代码中通配符<?> 是 <? extends Object> 的简写  *  * @param list

泛型限定

package 泛型;/* ? 通配符,也可以理解为占位符 * 泛型的限定: *      1. ? extends E: 可以接收E类型或者E的子类型. 上限限定 *         2.? super E:可以接收E类型或者E的父类型. 下限限定 *  *  * */import java.util.ArrayList;import java.util.Iterator; public class GenericDemo3 {    public static void main(Strin

Java泛型中extends和super的理解(转)

E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定的java类型(无限制通配符类型) S.U.V – 2nd.3rd.4th types Object – 是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T.E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换. ?

Java 泛型解析,太难了,认真读才能理解

Java 泛型 关键字说明 ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 <? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Object extends 示例 static class Food{} static class Fruit extends Food{} static class Apple extends Fruit{} static clas

Java泛型再学习

泛型是对于数据的一种规范,他限定了类.容器.方法可以接受的参数类型,避免参数类型混乱. 一.基本泛型 泛型最常见的地方就是集合,如: -- ArrayList<String>  表示这个集合中只能存放String类型的元素 -- HashMap<String, Object>  表示这个图中只能存放键为String类型,值为Object类型的元素 特别要注意的时,泛型只存在于编译阶段,在程序运行阶段,我们定义的泛型是并不存在的,这种方案叫“擦除”,示例: 1 public clas