打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
泛型之
1、匹配任意的通配符在开发中对象的引用传递是最常见的,如果在泛型类的操作中,在进行引用传递的时候泛型类型必须匹配才可以传递,否则是无法传递的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Info<T>{
private T var ;     // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){   // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo12{
public static void main(String args[]){
Info<String> i = new Info<String>() ;       // 使用String为泛型类型
i.setVar("MLDN") ;                          // 设置内容
fun(i) ;
}
public static void fun(Info<Object> temp){        // 接收Object泛型类型的Info对象
System.out.println("内容:" + temp) ;
}
};
编译时错误:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Info<T>{
private T var ;     // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){   // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo13{
public static void main(String args[]){
Info<String> i = new Info<String>() ;       // 使用String为泛型类型
i.setVar("MLDN") ;                          // 设置内容
fun(i) ;
}
public static void fun(Info temp){      // 接收Object泛型类型的Info对象
System.out.println("内容:" + temp) ;
}
};
以上确实完成了改进的功能,但是,代码似乎有些不是太妥当,毕竟之前已经指定过泛型了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Info<T>{
private T var ;     // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){   // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo14{
public static void main(String args[]){
Info<String> i = new Info<String>() ;       // 使用String为泛型类型
i.setVar("MLDN") ;                          // 设置内容
fun(i) ;
}
public static void fun(Info<?> temp){     // 可以接收任意的泛型对象
System.out.println("内容:" + temp) ;
}
};
如果使用?意味着可以接受任意的内容,但是此内容却无法直接使用<?>修饰的泛型对象进行修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Info<T>{
private T var ;     // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){   // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo15{
public static void main(String args[]){
Info<?> i = new Info<String>() ;        // 使用String为泛型类型
i.setVar("MLDN") ;                          // 设置内容
}
};
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
排序算法---插入排序
2021_2_24_数组
C#高效编程话题集2(每期10话题) - 不如来编码-luminji's web - 博客园
C#编程 | 那些C#中很少人知道的科技
C# 应用 - 使用 HttpListener 接受 Http 请求
Java泛型详解:<T>和Class<T>的使用。泛型类,泛型方法的详细使用实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服