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 类文字中必须使用原生态类型,规范不允许使用参数化类型。
- Generic_Study.zip (13.7 KB)
- 下载次数: 2
发表评论
-
Classloader
2011-11-22 14:09 754The class loader: BootStrap c ... -
JUnit Knowledges
2011-10-25 23:09 759mock objects: http://bigwhite. ... -
Java跨平台程序设计规则
2011-09-20 12:38 951不是说所有的Java程序都具有Java跨平台的特性,事实上,相 ... -
Servlet - life cycle and listener events
2011-08-25 15:56 837import database.BookDBAO; ... -
Common Gateway Interface
2011-08-25 15:20 1388A web server that supports ... -
什么时候使用属性或者元素(Designing XML document)
2011-08-19 11:34 1008Properties 是平面结构,想要表达结构复杂的信息有一定 ... -
Java Exception Study
2011-07-13 16:37 855Java Exception <!--[if ! ... -
面向对象的设计的四个主要原则
2011-07-11 14:22 13571. ISP (Interface Segregation ... -
Design Pattern
2011-07-11 11:52 654Mediator 一、引子 中介在现实 生活中并 ... -
Java Generic, Association, Composition, Aggregate
2011-07-05 16:20 1148UML中依赖泛化关联实现聚合组合的Java实现 ... -
ETL
2011-06-30 11:36 851ETL 对于数据仓库以及ETL的知识,我基本上是个 ... -
Java Collection Frameworks 学习
2011-06-30 11:17 693Java 集合总结 <!--[if !su ... -
Java Clone
2011-06-29 16:07 810Clone interface: 如果一个实现了Cl ... -
Credit Card 的工具类
2010-05-10 15:24 879这是一个非常有用的工具类用于验证credit card, 是a ... -
实例化抽象类时实现抽象类里的抽象方法
2010-04-16 09:18 1004EccTrxCmd logWSCall = new EccTr ... -
Java reflect
2010-03-09 16:21 814【转】Java反射经典实例 Java Reflection C ...
相关推荐
赠送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.pdf》文件,很可能是详细阐述了以下几个关于Java泛型的核心知识点: 1. **类型参数化**:泛型的核心在于类型参数化,这使得我们可以在定义类、接口和方法时...
该文件里包含两个.jar包: collections-generic-4.01.jar和looks-2.1.4.jar, 引入collections-generic-4.01.jar: 右击工程--》Build path ——》Add External JAR-->选中collections-generic-4.01.jar --》OK 在源...
包含获得各种集合对象的常用方法的泛型工具类。如果要获得一个 {@code Map<String, String>} 的对象,可以通过下面的方式实现: * {@literal Map<String, String> map = GenericUtils.getMap() }。...
在本案例中,我们关注的是"wwkhtmltox-0.12.3_linux-generic-amd64.tar.xz"这个压缩包,这是针对64位Linux系统的版本。 wkhtmltox项目由几个组件组成,包括命令行工具`wkhtmltopdf`和`wkhtmltoimage`。`...
"rabbitmq-server-generic-unix"是RabbitMQ专门为类Unix操作系统(如Linux、macOS等)提供的服务器软件包。 在了解RabbitMQ之前,我们先来看看AMQP协议。AMQP是一种开放的标准,定义了消息传递的模式和格式,确保...
10. **开发与集成**: Virtuoso提供了丰富的API和SDK,支持多种编程语言,如Java、Python、PHP等,方便开发者进行应用程序的开发和集成。 总结来说,"virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz...
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"压缩包中,包含的是适用于Unix环境的RabbitMQ服务器。要安装这个版本,你需要先确保你的系统满足必要的依赖,例如Erlang,它是RabbitMQ的运行时环境。接下来,你可以...
"mybatis-generic-dao-demo-generic" 是一个基于MyBatis的通用DAO项目的示例,它展示了如何利用MyBatis的插件机制来实现数据访问对象(DAO)的通用化,从而提高开发效率。 在这个项目中,重点可能包括以下几个方面...
RabbitMQ需要准备的环境,erlang的版本会影响到rabbitmq的安装,两者有个版本对照
jar包,官方版本,自测可用
Java通用请求 Java库发出诸如GET,GET(ById),POST,PUT,DELETE之类的Http请求,并将响应转换为所需的类型。 入门 建立会议 可以使用Builder类构建会话。会话将使用以下属性进行预配置。 请求方法:GET 期望的...
标题中的"rabbitmq-server-generic-unix-3.7.6.tar.zip"是一个RabbitMQ服务器的特定版本,这里指的是3.7.6版。RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,...
jar包,官方版本,自测可用
11.4java-泛型(Generic)
jar包,官方版本,自测可用
标题 "p28186730-1394213-Generic" 和描述 "p28186730_1394213_Generic OPatch version : 13.9.4.2.13" 暗示了这是一个与Oracle相关的产品更新或补丁,特别是针对WebLogic服务器的。`OPatch` 是Oracle公司提供的一种...