Java-基础语法-泛型

举报
Photon 发表于 2020/12/12 12:33:49 2020/12/12
【摘要】 Java-基础语法

泛型

产生背景

参考链接


依赖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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。