A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王敏NO.09 中级黑马   /  2012-4-23 16:30  /  2327 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

<V extends Serializable&cloneable> void method(){}
泛型定义,这就话是什么意思呢

4 个回复

倒序浏览
泛型这个东西,说白了就是型参,也就是说类型本身可以作为参数来对类的类型做辅助说明
如果一个类的后面跟上一个尖括号,表示这个类是泛型类. 可以这样声明:class 名称<泛型列表> 如:class A<E> ,其中A是泛型类的名称,E是泛型.(可以是任何对象或接口) ,其中给出的泛型可以作为类的成员变量的类型,方法的类型以及局部变量的类型.类体和变通类完全一样,由成员变量和方法构成.
class Chorus<E,F>
{
void makeChorus(E person,F yueqi)
{
yueqi.toString();
person.toString() ;
}
}
上面的类中将类E和类F作为类Chorus的一部分来使用.这就是泛型类的目的,将多个类包含进一个类来使用!!!



回复 使用道具 举报
定义了一个未知的返回类型v此类型要么是 Serializable要么是cloneable或者是他们的父类
回复 使用道具 举报
V是Serializable或者cloneable的子类
用于放置泛型的类型参数的尖括号应出现在方法的所有修饰符之后和返回类型之前。只有引用类型才能作为泛型方法的实际参数,基本类型则不可以         
定义泛型时也可以使用extends修饰符,        如:<V extends Serializable&cloneable> void method();
普通方法、构造方法和静态方法中都可以使用泛型
也可以用类型变量表示异常,可以用于方法的throws列表中,但不能用于catch中。泛型中可以有多个类型参数,在定义它们的尖括号中用逗号分开。         Public static <K,V> V getValue(K key) {return map.get(key);}

回复 使用道具 举报
纠错,纠错
回3楼 定义了一个未知的返回类型v此类型要么是 Serializable要么是cloneable或者是他们的父类;
<V extends Serializable&Cloneable> void method(){}   V指的是一个实现了Serializable和Cloneable的泛型。但他并不是返回类型,因为返回类型已经明确指定了是void.
回4楼 V是Serializable或者Cloneable的子类
V并不是子类,因为是涉及到两个接口,另外,逻辑错误,并不是'或者',而是'而且';
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马