定义泛型接口

我想是你没表述清楚吧!是定义泛型接口吧!
定义泛型接口的好处:
a.减少了对对象进行装箱和拆箱所导致的性能成本,提高了效率。
b.赋予了代码更强的类型安全。
c.实现了更为灵活的代码复用。

其实就是泛型的好处了,如果不用泛型,那么就得用object了,这样有什么缺点呢?
1,如果对象是值类型,那么就有拆箱,装箱了,效率很低;
2,object,可读性很低,如果用泛型,我们可以直接看到对象是int,string或是char,可读性很强。

我就想到这两点了,其他的可以搜索下泛型的优点就是了。

JDK1.5之后的List接口,Iterator接口,Map接口的代码:

public interfaceList<E>

{

voidadd(E x);

Iterator<E> iterator();

}

public interfaceIterator<E>

{

E next();

Boolean hasNext();

}

Public interfaceMap<K,V>

{

Set<K> keyset();

V put(K key, V value);

}

上面三个接口声明比较简单,除了尖括号中的内容――这就是泛型的实质;允许在定义接口,类时指定类型形参,类型形参在整个接口,类体内中可当作类型使用,几乎所有可使用其他普通类型的地方都可以使用这种类型形参。

例如我们使用List类型时,为E形参传入String类型实参,则产生了一个新的类型: List<String>类型,我们可以把List<String>想像成E杯全部替换成String的特殊List子接口:

Public interfaceListString extends List

{

Voidadd(String x);

Iterator<String> iterator();

}

虽然程序只定义了一个List<E>接口,但实际使用时可以产生无数多个List接口,只要为E传入不同的类型实参,系统就会多出一个新的List子接口。

public class Apple<T> {

private T info;

public Apple(){}

public Apple(T info){

this.info =info;

}

public void setInfo(T info){

this.info =info;

}

public T getInfo(){

return this.info;

}

public static void main(String[] args){

Apple<String> a1 = new Apple<String>("Apple");

System.out.println(a1.getInfo());

Apple<Double> a2 = new Apple<Double>(2.00);

System.out.println(a2.getInfo());

}

}

Output:

Apple

2.0

上面定义了一个带泛型声明的Apple<T>类,实际使用时会为T形参传入实际类型。

时间: 2024-12-20 13:28:21

定义泛型接口的相关文章

跟王老师学泛型(四):定义泛型接口及实现

定义泛型接口及其实现 主讲教师:王少华 QQ群:483773664 学习目标 1.泛型接口 2.实现泛型接口的三种情况 一.定义接口 1 2 3 public interface Generator<T> {     public T next(); } 二.实现这个接口 1 2 3 4 5 6 7 8 9 10 public class FruitGenerator implements Generator<String> {     private String[] fruit

泛型的其他应用-接口,方法定义使用,泛型数组,泛型的嵌套设置。

掌握泛型的接口的使用: 掌握泛型方法的定义与使用: 掌握泛型数组的使用: 掌握泛型的嵌套设置: 具体内容 1.1泛型接口基本概念 之前所有的操作都是在类中直接使用泛型操作的,那么,对于JAVA来说,也可以在接口中定义及使用泛型. 声明泛型接口: interface 接口名称<接口标示>{} interface Info<T> { public T getInfo(); } 如果现在一个子类实现此接口是没有进行正确的实现,则在编译时候会出现警告, 例子: interface Info

java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)

JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型  其实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1.str2的值是可变的.而泛型也是一样的,这样写class Java_Generics<K,V>,这里边的K和V就象方法中的参数str1和st

java 泛型实例详解(普通泛型、 通配符、 泛型接口)

java 泛型详解(普通泛型. 通配符. 泛型接口) 2013-02-04 19:49:49| 分类: JAVA | 标签:java |举报|字号 订阅 下载LOFTER客户端 JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型 其实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String

java 泛型详解(普通泛型、 通配符、 泛型接口)

java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型 其 实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1.str2的值是可变的.而泛型也是一样的,这样写class Java_Generics<K

Java泛型的其他应用——泛型接口、泛型方法、泛型数组以及泛型的嵌套设置

学习目标 掌握泛型接口的使用 掌握泛型方法的定义的及使用 掌握泛型数组的使用 掌握泛型的嵌套设置 之前所有的操作都是在类中直接使用泛型操作的,那么,对于Java来说,也可以直接在接口中定义及使用泛型. 定义泛型接口 在JDK1.5之后,不仅仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上<T>,如下格式所示: [访问权限]  interface 接口名称<泛型标识>{} interface Info<T>{ // 在接口上

泛型的基本介绍和使用

在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用.泛型在java中,是一个十分重要的特性,所以要好好的研究下. 泛 型的定义:泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型.这种参数类型可以用在类.接口和方法的创建中,分别称为泛 型类.泛型接口和泛型方法. 泛型思想早在C++语言的模板(Templates)中就开始生根发芽,

Collection、Iterator、泛型初步

java.util.Collection 集合层次的根接口 java.util.List extends Collection ArrayList implements List 常用方法 boolean add(E e) //添加元素 boolean remove(Object o) //删除元素 void clear() //清空元素 boolean contains(Object o) //判断是否包含某元素 boolean isEmpty() //判断是否为空 int size() //

[Java5新特性]泛型

Java中集合的问题 Java中的集合有个缺点:就是当我们把数据放置到集合中时,集合是不会记住数据类型的.也就是说,当我们再从集合中获取到数据时,数据类型都变成了Object类型了. 换句话讲,集合对元素类型是没有任何限制的.这样可能会出现一些问题,例如如果我们要创建一个专门存储字符串的List集合的话,也可以将Integer类型数据放置进入.即使放置进去的都是字符串数据,从List集合取出时,还是需要类型转换的(因为集合中元素类型都是Object类型). 例如下面这个例子:创建一个只保存字符串