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 类文字中必须使用原生态类型,规范不允许使用参数化类型。
- Generic_Study.zip (13.7 KB)
- 下载次数: 2
发表评论
-
Classloader
2011-11-22 14:09 715The class loader: BootStrap c ... -
JUnit Knowledges
2011-10-25 23:09 705mock objects: http://bigwhite. ... -
Java跨平台程序设计规则
2011-09-20 12:38 921不是说所有的Java程序都具有Java跨平台的特性,事实上,相 ... -
Servlet - life cycle and listener events
2011-08-25 15:56 786import database.BookDBAO; ... -
Common Gateway Interface
2011-08-25 15:20 1362A web server that supports ... -
什么时候使用属性或者元素(Designing XML document)
2011-08-19 11:34 976Properties 是平面结构,想要表达结构复杂的信息有一定 ... -
Java Exception Study
2011-07-13 16:37 812Java Exception <!--[if ! ... -
面向对象的设计的四个主要原则
2011-07-11 14:22 13081. ISP (Interface Segregation ... -
Design Pattern
2011-07-11 11:52 619Mediator 一、引子 中介在现实 生活中并 ... -
Java Generic, Association, Composition, Aggregate
2011-07-05 16:20 1121UML中依赖泛化关联实现聚合组合的Java实现 ... -
ETL
2011-06-30 11:36 823ETL 对于数据仓库以及ETL的知识,我基本上是个 ... -
Java Collection Frameworks 学习
2011-06-30 11:17 659Java 集合总结 <!--[if !su ... -
Java Clone
2011-06-29 16:07 772Clone interface: 如果一个实现了Cl ... -
Credit Card 的工具类
2010-05-10 15:24 842这是一个非常有用的工具类用于验证credit card, 是a ... -
实例化抽象类时实现抽象类里的抽象方法
2010-04-16 09:18 975EccTrxCmd logWSCall = new EccTr ... -
Java reflect
2010-03-09 16:21 784【转】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-...
该文件里包含两个.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() }。...
接受java泛型的资料,非常不错的,文章内容简单明了,并有丰富的代码实例,让你彻底了解java 泛型的全部
19-Generic-Programming-in-Java.ppt19-Generic-Programming-in-Java.ppt19-Generic-Programming-in-Java.ppt19-Generic-Programming-in-Java.ppt19-Generic-Programming-in-Java.ppt19-Generic-Programming-in-Java...
关于wkhtmltox,是一个可以把HTML转换为图片和pdf的工具。
java-generic-validator 可以由其他项目使用的通用验证器 用法示例:阈值验证 public class Threshold { private final Double value; private Threshold ( Double value ) { this . value = value; } ...
RabbitMQ需要准备的环境,erlang的版本会影响到rabbitmq的安装,两者有个版本对照
jar包,官方版本,自测可用
jar包,官方版本,自测可用
Java通用请求 Java库发出诸如GET,GET(ById),POST,PUT,DELETE之类的Http请求,并将响应转换为所需的类型。 入门 建立会议 可以使用Builder类构建会话。会话将使用以下属性进行预配置。 请求方法:GET 期望的...
jar包,官方版本,自测可用
velocity-tools-generic-1.4.jar
java-entitymanager-generic-dao 这是一个使用通用 daos 访问数据的小项目。 在这个实现中,我们使用 Spring Framework ORM EntityManager 使用预配置的数据源来实现基本操作,例如从数据库中插入、更新、删除和检索...
centos6.5 安装rabbitmq 需要的软件otp_src_20.0.tar.gz+rabbitmq-server-generic-unix-3.6.1
java-session-generic-dao 这是一个使用通用 daos 访问数据的小项目。 在这个实现中,我们使用通过 AnnotationConfiguration 从 hibernate.cfg.xml 文件创建的 Hibernate ORM Session 来实现基本操作,例如从数据库...
本版本修复 JDK的Bug1–数组切割 JDK的Bug2–三元运算符 JDK中不算Bug的Bug–ArrayList可通过构造函数传入非指定泛型的List并在get时出错
hibernate-generic-dao 从 code.google.com/p/hibernate-generic-dao 自动导出 由于谷歌代码关闭完成,我在这里导出了 hibernate-generic-dao 项目。 维基没有自动导出,所以我做了一个简单的复制和粘贴,这把格式...
java运行依赖jar包