黑马程序员技术交流社区
标题:
求解,以下泛型代码怎么理解
[打印本页]
作者:
杨新文
时间:
2012-9-15 21:12
标题:
求解,以下泛型代码怎么理解
本帖最后由 杨新文 于 2012-9-16 13:02 编辑
<P>interface ConvertibleTo<T> {
T convert();
}</P>
<P>class ReprChange <T extends ConvertibleTo<S>, S extends ConvertibleTo<T>>{
T t;
void set(S s){
t = s.convert();
}
S get(){
return t.convert();
}
}</P>
复制代码
作者:
皮卫凯
时间:
2012-9-15 21:35
interface ConvertibleTo<T>
//这里是定义接口 比较器 运用泛型
{
T convert();
//比较的方法
}
class ReprChange <T extends ConvertibleTo<S>, S extends ConvertibleTo<T>>
//运用了泛型定义要操作的引用数据类型
{
//T继承了接口,S继承了接口。让他们具有比较性
T t;
// T是数据类型。 t是T类型的参数。
void set(S s)
// S是数据类型。 s是S类型的参数
。
{
t = s.convert();
// 调用接口中的convert比较方法。一般会覆写该方法
}
S get()
{
return t.convert();
}
}
作者:
张 涛
时间:
2012-9-15 21:37
interface ConvertibleTo<T> {//接口上加泛型,只有一个方法convert(),返回一个泛型类型的对象。
T convert();
}
//定义一个类,在这个类上加泛型,这个泛型类型是T,但T是ConvertibleTo<S>的子类,S是ConvertibleTo<T>的子类。
//<T>,<S>和<T extends ConvertibleTo<S>, S extends ConvertibleTo<T>>都是泛型
class ReprChange <T extends ConvertibleTo<S>, S extends ConvertibleTo<T>>{
T t;//定义类型T
void set(S s){//方法,接受一个参数S,把S转化为T类型
t = s.convert();
}
S get(){//方法,把T转化为S返回。
return t.convert();
}
}
复制代码
作者:
史小兵
时间:
2012-9-15 21:45
interface ConvertibleTo<T> 定义接口使用了泛型
T convert(); 根据上边的泛型限定了方法的返回值类型
class ReprChange <T extends ConvertibleTo<S>, S extends ConvertibleTo<T>> 运用了泛型定义要操作的引用数据类型分别利用泛型丁一两个参数。利用泛型限定T要是ConvertibleTo<S>,的子类或相等,S是ConvertibleTo<T>的子类或相等
T t; T是数据类型。 t是T类型的参数
void set(S s) S是数据类型。 s是S类型的参数。
t = s.convert(); 调用接口中的convert比较方法。一般会覆写该方法
S get()返回值为S的get()方法
return t.convert();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2