JAVA基础-泛型
【摘要】 泛型产生背景参考链接依赖Java特性:Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常. 对于集合类,如果不使用泛型,那么什么类型的对象都能存入。在取出时,因为不知道对象类型,向下转型时很有可能报错。定义泛型类/* 1:把泛型定义在类上 2:类型变量定义在类上,方法中也可以使用 */public class Obje...
产生背景
依赖Java特性:
Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.
对于集合类,如果不使用泛型,那么什么类型的对象都能存入。
在取出时,因为不知道对象类型,向下转型时很有可能报错。
定义
泛型类
/*
1:把泛型定义在类上
2:类型变量定义在类上,方法中也可以使用
*/
public class ObjectTool<T> {
private T obj;
public T getObj() {
return obj;
}
public void setObj(T obj) {
this.obj = obj;
}
}
public static void main(String[] args) {
//创建对象并指定元素类型
ObjectTool<String> tool = new ObjectTool<>();
tool.setObj(new String("钟福成"));
String s = tool.getObj();
System.out.println(s);
//创建对象并指定元素类型
ObjectTool<Integer> objectTool = new ObjectTool<>();
/**
* 如果我在这个对象里传入的是String类型的,它在编译时期就通过不了了.
*/
objectTool.setObj(10);
int i = objectTool.getObj();
System.out.println(i);
}
泛型方法
使用背景
仅仅某个方法需要泛型使用,而不需要整个类上定义泛型。外界仅仅是关心该方法,不关心其他的属性。
//定义泛型方法..
public <T> void show(T t) {
System.out.println(t);
}
public static void main(String[] args) {
//创建对象
ObjectTool tool = new ObjectTool();
//调用方法,传入的参数是什么类型,返回值就是什么类型
tool.show("hello");
tool.show(12);
tool.show(12.5);
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)