java中的泛型入门
来源:互联网 发布:知乎关注人数最多的 编辑:程序博客网 时间:2024/04/30 06:17
1.什么是泛型?
泛型就是未定义的类型,其实泛型编译之后就是不存在的了。
2.泛型类模板
1)广泛通用的类型.泛型类只适用于非静态方法。
2)代码模板中类型不确定,谁调用该段代码,谁指明类型是什么。
3)泛型不存在继承的关系(错误如). List<Object> list = new ArrayList<String>();//错误的。
public class GeneriTypeDemo {public static void main(String[] args) {GeneriType<String> type1 = new GeneriType<>();type1.setX("这里只能设置String类型");String str1 = type1.getX();System.out.println(str1);GeneriType<Integer> type2 = new GeneriType<>();type2.setX(new Integer(2));Integer num = type2.getX();System.out.println(num);}}class GeneriType<T> {private T x;private T y;public T getX() {return x;}public void setX(T x) {this.x = x;}
3.泛型方法:在方法上声明泛型
1)泛型类中的泛型只能适用于非静态方法,如果需要给静态方法设置泛型,此时使用泛型方法。
2)泛型类中的泛型应该适用于整个类中多个方法,有时候只对某一个方法设置泛型即可。
3)一般的,把自定义的泛型作为该方法的返回类型才有意义,而且此时的泛型必须是由参数设置进来的。
public class GeneriTypeStaticDemo {public static void main(String[] args) {String str = doWork("1");Integer num = doWork(123);}public static <T> T doWork(T args) {T val = args;return val;}}
4.泛型的上限和下限
1)泛型的上限和下限:用来限定元素的类型必须是X类的子类或相同,X的父类或相同.
2)?表示通配符
import java.util.ArrayList;import java.util.List;public class GeneriTypeLimit {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>();doWork1(list1);List<Number> list2 = new ArrayList<>();doWork2(list2);}public static void doWork1(List<? extends Number> val) {}public static void doWork2(List<? super Number> val) {}}
阅读全文
0 0
- java中的泛型入门
- Java中的接口入门
- Java中的注解入门
- java泛型入门
- java泛型入门
- Java泛型入门
- java泛型入门
- Java泛型入门
- Java泛型入门
- Java泛型入门
- Java泛型入门
- Java泛型入门
- Java泛型入门
- Java中的字符集编码入门
- Java中的IO流,入门
- Java 入门中的几个基本概念
- java中的读写锁入门
- Java基础入门-java中的static使用
- MongoDB:创建用户
- 北京市平谷区谷歌卫星地图下载
- 深入理解c语言指针-第三章
- c++学习笔记之运算符重载
- IO模型图解
- java中的泛型入门
- LeetCode 454: 4 Sum II
- 36氪WISE 2017:融云斩获年度最具影响力奖
- 8种实用滤波算法--C语言编写
- 性能测试指标的理解--cpu和load
- Activiti工作流课程
- LuaFrameWork-UGUI使用说明、导入Unity
- 计算机编程语言Java的早期历史
- L版本APPIOT常见问题总结(对比机可以复现)