黑马程序员_日记50_泛型定义在方法上
来源:互联网 发布:安卓手机安装windows 编辑:程序博客网 时间:2024/05/18 02:18
——- android培训、java培训、期待与您交流! ———-
泛型定义在方法上
思路:
1 定义泛型在类上,来操作不确定的引用数据类型。
这个时候当限定了操作类的引用数据类型1之后,
如果想在使用方法的时候传递引用数据类型2,
就会发生编译失败!
这是泛型类的局限性:
类型一旦确定,就无法使用其他引用数据类型。
泛型类定义的泛型,在整个类中有效,
如果被方法使用,
那么泛型类的对象明确要操作的具体类型后,
所有要操作的类型就已经固定了。
2 为了让不同方法操作不同的类型,
就引入了把泛型定义在方法上的概念。
泛型定义在方法上后,只在方法范围内有效!
/*//1 泛型定义在类上,在整个类都有效class GenericClass<T>{ public void print(T t) { System.out.println(t); }}//主类class GenericDemo4{ public static void main(String[] args) { GenericClass<String> gs = new GenericClass<String>(); gs.print("44h"); gs.print(new Integer(4)); }}泛型的局限性体现出来了一旦限定了引用数据类型,就在整个类都有效,要想使用其他类型,就必须重新建立一个对象*///2 泛型定义在方法上,只在方法内有效class GenericClass<E>{ public <T> void print(T t)//T仅在本方法有效 { System.out.println(t); } public <E> void show(E e)//跟类走 { System.out.println(e); } public static <T> void method(T t)//T仅在本方法有效,所以可以重名 { System.out.println(t); }}//主类class GenericDemo4{ public static void main(String[] args) { //静态方法使用泛型 GenericClass.method("hello"); GenericClass.method(new Integer(3)); //泛型方法 GenericClass gs = new GenericClass(); gs.print("44h"); gs.print(new Integer(4)); }}
/*
特殊之处:
静态方法不可以访问类上定义的泛型。
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
*/
0 0
- 黑马程序员_日记50_泛型定义在方法上
- 黑马程序员_日记49_泛型定义在类上
- 黑马程序员_日记51_泛型定义在接口上
- 黑马程序员_日记53_泛型应用在自定义类的对象上
- 黑马程序员_日记47_泛型概述
- 黑马程序员_日记48_泛型基本使用
- 黑马程序员_日记65_Arrays方法
- 黑马程序员_学习日记65_713ASP.NET(委托、托管、扩展方法、泛型委托、进程_应用程序域_线程、多线程、异步委托)
- 黑马程序员_方法
- 黑马程序员_日记21_JavaString常用方法
- 黑马程序员_日记32_JavaRemoveAll方法测试
- 黑马程序员_日记34_JavaList特有方法
- 黑马程序员_日记56_Map概述和简单方法
- 黑马程序员_日记62_Collections工具类方法
- 黑马程序员_学习日记十六_基础加强之泛型、类加载器
- 黑马程序员_日记52_泛型限定初级使用
- 黑马程序员_数组定义的方式方法
- 黑马程序员_多线程(上)
- SIP中的DNS过程
- Xcode编译Undefined symbols for architecture xxx 错误总结
- 第六周项目4:成员函数,友元函数和一般函数有区别
- Dos命令查看端口占用及关闭进程
- qt网络编程
- 黑马程序员_日记50_泛型定义在方法上
- XPath查询
- 一台机器上启动多个Tomcat
- 第5周项目6-复数类模板
- 对 UIView 的 setNeedsLayout、 layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
- Android初学习 - EditText、TextView中文本的获取和设置
- 题目1 : 骨牌覆盖问题·一 (线性递推+矩阵快速幂)
- 第六周项目5——有元类
- 反射类入门学习