Java (泛型)

泛型:

概念:不确定数据类型,减少重写的麻烦使程序更加通用(传入值和返回值都以Object类型为主)。 

[类修饰词] class类名 <类型参数>  [extends父类名]  [implements接口名 ] {  类体}

①、 泛型+类:class qingke{ }  // 表示类中可以有泛型,但必须是泛型T,Q。其他的都不行。

②、泛型+变量:private Q q ;  // 表示 q的类型Q(不确定数据类型)

③、泛型+方法:public Q say ( Q say) { }              publicT say(T t ) {  // 在方法返回值或者在类名声明了<泛型>即可使用。

④、ArrayList list = new ArrayList();

list.add(15) ; list.add("sdf") ; list.add(0.2) ; list.add(new Date());

String  sum = (String) list.get(1);

String  sum = (String) list.get(3) ; 这样做虽然不报错,但是实际上是错误的。

因此引入泛型。

⑤、 GenericFoo(  string ){  }  //设置了类型的上限是Animals类型。

GenericFoo(  string ){  }  //设置了类型的下限是Animals类型(父类)。

GenericFoo  //设置类型是泛型。

⑥、指定的数据类型。< String >


2 . 通配符:

<?>表示未指定的类型,java会自动将其当作最顶层的Object类,所以它和等效。

<? extends Student>表示泛型T指代Student类及继承它的子类、子类的子类......

<? super Studn>表示泛型T指代Student类及它的父类、父类的父类......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接收List作为形式参数,那么如果尝试...
    时待吾阅读 1,081评论 0 3
  • 泛型 泛型由来 泛型字面意思不知道是什么类型,但又好像什么类型都是。看前面用到的集合都有泛型的影子。 以Array...
    向日花开阅读 2,215评论 2 6
  • 一、泛型简介1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic S...
    Android进阶与总结阅读 1,036评论 0 9
  • 为什么需要泛型? 通过泛型可以定义类型安全的数据结构,而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到...
    一只好奇的茂阅读 1,296评论 2 39
  • 连续灵修218天 【代下34:7】又拆毁祭坛,把木偶和雕刻的像打碎成灰,砍断以色列遍地所有的日像,就回耶路撒冷去了...
    报佳音阅读 316评论 0 0