`

Java - Generic

    博客分类:
  • java
 
阅读更多

 

Generics

<!--[if !supportLists]-->1.       <!--[endif]--> Functions:

The compiler can now check the type correctness of the program at compile-time.

 

A generic type declaration is compiled once and for all, and turned into a single class file, just like an ordinary class or interface declaration

 

<!--[if !supportLists]-->2.       <!--[endif]-->Define a simple generics

 

public interface List <E>{

    void add(E x);

    Iterator<E> iterator();

}

 

public interface Iterator<E>{

    E next();

    boolean hasNext();

}

 

 

List<? extends Shape> is an example of a bounded wildcard.

 

<!--[if !supportLists]-->3.   <!--[endif]-->WildCard

?  无限制的通配符(unbounded wildcard---不确定或者不关心实际的类型参数

In general, if you have an API that only uses a type parameter T as an argument, its uses should take advantage of lower bounded wildcards (? super T). Conversely, if the API only returns T, you'll give your clients more flexibility by using upper bounded wildcards (?extends T).

this situation arises relatively frequently, there is a special rule that allows such code under very specific circumstances in which the code can be proven to be safe. This rule, known as wildcard capture, allows the compiler to infer the unknown type of a wildcard as a type argument to a generic method.

 

<!--[if !supportLists]-->4.   <!--[endif]-->Notice

参数化 类型

List<String>

 

实际类型参数

String

 

泛型

List<E>

 

形式类型参数

E

 

无限制通配符类型

List<?>

 

原生态类型

List

 

有限制类型参数

<E extends Number>

 

 

递归类型限制

<T extends  Comparable<T>>

 

有限制通配符类型

List<? Extends Number>

 

泛型方法

Static <E> List<E> asList<E[] a>

 

类型令牌

String.class

 

 

 

 

<!--[if !supportLists]-->1)             <!--[endif]-->Class literal 类文字中必须使用原生态类型,规范不允许使用参数化类型。


 

 

 

分享到:
评论

相关推荐

    velocity-tools-generic-3.1-API文档-中英对照版.zip

    赠送jar包:velocity-tools-generic-3.1.jar; 赠送原API文档:velocity-tools-generic-3.1-javadoc.jar; 赠送源代码:velocity-tools-generic-3.1-sources.jar; 赠送Maven依赖信息文件:velocity-tools-generic-...

    java-generic.rar_泛型

    在《java-generic.rar》压缩包中包含的《java generic.pdf》文件,很可能是详细阐述了以下几个关于Java泛型的核心知识点: 1. **类型参数化**:泛型的核心在于类型参数化,这使得我们可以在定义类、接口和方法时...

    collections-generic-4.01_and_looks-2.1.4

    该文件里包含两个.jar包: collections-generic-4.01.jar和looks-2.1.4.jar, 引入collections-generic-4.01.jar: 右击工程--》Build path ——》Add External JAR--&gt;选中collections-generic-4.01.jar --》OK 在源...

    java-Generic-tools.rar_stringtools java

    包含获得各种集合对象的常用方法的泛型工具类。如果要获得一个 {@code Map&lt;String, String&gt;} 的对象,可以通过下面的方式实现: * {@literal Map&lt;String, String&gt; map = GenericUtils.getMap() }。...

    wwkhtmltox-0.12.3_linux-generic-amd64.tar.xz

    在本案例中,我们关注的是"wwkhtmltox-0.12.3_linux-generic-amd64.tar.xz"这个压缩包,这是针对64位Linux系统的版本。 wkhtmltox项目由几个组件组成,包括命令行工具`wkhtmltopdf`和`wkhtmltoimage`。`...

    rabbitmq-server-generic-unix

    "rabbitmq-server-generic-unix"是RabbitMQ专门为类Unix操作系统(如Linux、macOS等)提供的服务器软件包。 在了解RabbitMQ之前,我们先来看看AMQP协议。AMQP是一种开放的标准,定义了消息传递的模式和格式,确保...

    virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz

    10. **开发与集成**: Virtuoso提供了丰富的API和SDK,支持多种编程语言,如Java、Python、PHP等,方便开发者进行应用程序的开发和集成。 总结来说,"virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz...

    java-generic-validator:可以由其他项目使用的通用验证器

    java-generic-validator 可以由其他项目使用的通用验证器 用法示例:阈值验证 public class Threshold { private final Double value; private Threshold ( Double value ) { this . value = value; } ...

    rabbitmq-server-generic-unix-2.8.2.tar.gz

    在"rabbitmq-server-generic-unix-2.8.2.tar.gz"压缩包中,包含的是适用于Unix环境的RabbitMQ服务器。要安装这个版本,你需要先确保你的系统满足必要的依赖,例如Erlang,它是RabbitMQ的运行时环境。接下来,你可以...

    mybatis的基本演示项目-mybatis-generic-dao-demo-generic

    "mybatis-generic-dao-demo-generic" 是一个基于MyBatis的通用DAO项目的示例,它展示了如何利用MyBatis的插件机制来实现数据访问对象(DAO)的通用化,从而提高开发效率。 在这个项目中,重点可能包括以下几个方面...

    rabbitmq-server-generic-unix-3.7.5.tar.xz

    RabbitMQ需要准备的环境,erlang的版本会影响到rabbitmq的安装,两者有个版本对照

    collections-generic-4.01-sources.jar

    jar包,官方版本,自测可用

    Java-Generic-Request

    Java通用请求 Java库发出诸如GET,GET(ById),POST,PUT,DELETE之类的Http请求,并将响应转换为所需的类型。 入门 建立会议 可以使用Builder类构建会话。会话将使用以下属性进行预配置。 请求方法:GET 期望的...

    rabbitmq-server-generic-unix-3.7.6.tar.zip

    标题中的"rabbitmq-server-generic-unix-3.7.6.tar.zip"是一个RabbitMQ服务器的特定版本,这里指的是3.7.6版。RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,...

    collections-generic-4.0.jar

    jar包,官方版本,自测可用

    11.4java-泛型(Generic).md

    11.4java-泛型(Generic)

    collections-generic-4.01-src.jar

    jar包,官方版本,自测可用

    p28186730-1394213-Generic

    标题 "p28186730-1394213-Generic" 和描述 "p28186730_1394213_Generic OPatch version : 13.9.4.2.13" 暗示了这是一个与Oracle相关的产品更新或补丁,特别是针对WebLogic服务器的。`OPatch` 是Oracle公司提供的一种...

Global site tag (gtag.js) - Google Analytics