1.类型参数:更好可读性,安全性
a)<T,U extends Comparable&Serializable> 确保实现某接口 可以是类,接口(extends接近子类概念)
b)类放第一,只能一个,接口可多个
2.通配符类型(可限制只能单向调用)
3.
public class Pair<T> {
private T a;
public Pair(T a) {
this.a = a;
}
public T getA() {
return a;
}
public void setA(T a) {
this.a = a;
}
public static void main(String[] args) {
Pair<String> a = new Pair<String>("testttt");
System.out.println(a.getA());
}
}
4.T U,S表示任意类型,<K,V>表身key,value,<E>集合元素
5.泛型方法
public static <T> T test(T[] in){
return in[in.length/2];
}
//调用 ClassA.test(..) ClassA.<String>Test(...);
5.虚拟机没有泛型,都为普通类
a)定义泛型,提供原始类型(raw type)
b)擦除类型变量,替换限定类型(无用Object,有的话用第一个类型)
6.翻译泛型表达式
a)原始方法调用
b)强制转换,安全转换
c)引入桥方法,多态实现
7.参数名相同,返回值不同是不允许的,虚拟机却可识别
j2se5.0 方法覆盖可返回更严格的返回类型
8.限制
a)不能用基本类型做类型参数(擦除至少要含有Object)
b)运行时类型检测只适用于原始类型
if(a instanceOf Pair<T>) //or Pair<String>
Pair<String> a=Pair<T>b;
a.getClass-->Pair.class
c)不能抛出,不能捕获泛型实例(Throwable),不能在catch(T e)
public class Problem<T> extends Throwable //illegal
public class Problem<T extends Throwable> //legal 异常类型
d)参数化类型数组非法 Pair<String>[] .. 数组能记忆类型(component type)
推荐ArrayList<Pair<String>>
e)不能实例化类型变量 a=new T();
T.class 非法 要是Class<T> c 声明
f)数组做私有域
public class ArrayList<E>{
private Object[] elements;//E[]
public E get(int n){
return (E)elements[n];//cast
}
public void set(int n,E e){
elements[n]=e;//elements[n]=(E[])new Object[10];
}
}
//object->string会出问题
T[] mm=(T[])Array.newInstance(a.getClass.getComponentType,2);//实例
g)禁止带类型变量静态域/方法 (类型擦除)
h)注意擦除后冲突 boolean equals(T value)
若继承2个接口的祖先不能同一接口,可能桥接冲突
g)类型变量无继承关系 Pair<T> Pair<S> 可包含于Pair
数组可以继承关系,可赋值(多态)
h)可继承
9.通配符的类型参数 <? extends Employee>
分享到:
相关推荐
《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...
《Core Java 第九版》是Java编程领域的一本经典教材,尤其适合初学者入门。这本书深入浅出地讲解了Java语言的基础知识和高级特性,帮助读者掌握Java编程的核心概念和技术。 1. **Java语言基础**:书中首先介绍了...
适用于使用Java核心卷一的同学。官方下载工具。 ...第12章详细讨论Swing GUI工具包;第13章介绍如何将程序部署为应用或applet;第14章讨论并发。本书后还有一个附录,其中列出了Java语言的保留字。
《Core Java》是由Sun Microsystems公司出版的一本权威的Java编程教材,它全面深入地介绍了Java语言的核心概念和技术。这本书是Java开发者的重要参考资料,对于初学者和有经验的开发者都具有很高的学习价值。以下是...
《核心Java 第十版》是Java编程领域的一本经典教材,由Cay S. Horstmann和Gary Cornell合著,全面介绍了Java编程的基础知识和技术。这本书主要分为两卷,卷I主要关注基础知识,包括Java语言的核心特性、面向对象编程...
《Core Java 1 第十版》是Java编程领域的一本经典教材,专注于Java核心技术的讲解。这本书详尽地涵盖了Java语言的基础以及高级特性,对于学习和掌握Java编程有着极高的价值。以下是根据书名和描述提炼出的一些核心...
《Core Java 8th Edition》是Java开发领域的一部经典著作,主要针对的是Java 8这一版本。这本书详细阐述了Java编程语言的核心概念和技术,对于任何想要深入理解Java的开发者来说,都是一份不可多得的参考资料。以下...
《Core Java卷1》是Java编程初学者的重要参考资料,它由Cay S. Horstmann和Gary Cornell合著,被誉为Java编程的经典教材。第八版在原有的基础上进行了更新,以适应现代Java开发环境的变化,提供了全面且深入的Java...
《核心Java》是Java编程领域的经典著作,第十版的发布为学习者提供了全面且深入的Java知识体系。这个"corejava.rar"压缩包文件包含了该书籍的源代码,供读者在学习过程中实践和理解书中所讲解的概念。以下是基于Java...
更新到jdk 6平台,但和 第七版没有本质的区别 代码示例请到此地址下载:【corejava8代码示例】http://download.csdn.net/source/2366281 1 AN INTRODUCTION TO JAVA...第12章 泛型程序设计 第13章 集合 第14章 多线程
《核心Java 11版:Java核心技术 卷一卷二》是Java开发人员的重要参考资料,涵盖了从基础到高级的广泛主题。这套书籍深入讲解了Java 11版本的关键概念和技术,旨在帮助读者全面掌握Java编程。 卷一主要关注基础知识...
第1章 Java 程序设计概述 1.1 Java 程序设计平台 1.2 Java 白皮书的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 ...第12章 泛型程序设计 第13章 集合 第14章 多线程
《Core Java 8th Edition》是Java编程领域中一本经典的参考书籍,由Cay S. Horstmann和Gary Cornell合著。这本书详细介绍了Java SE(标准版)平台的核心概念和技术,特别关注Java 8的新特性。以下是根据标题、描述...
《Core JAVA volume I(第九版)》是一本深入讲解Java编程基础的经典著作,适用于初学者和有经验的程序员。此书以英文版呈现,内容清晰明了,是学习Java技术的宝贵资源。作为一本权威的Java教程,它覆盖了Java语言的...
这本书的第十版包含了Java语言的最新发展,为开发者提供了深入理解和应用Java技术的全面指南。本卷是第二部分,主要关注Java的高级特性,包括并发、网络、图形用户界面(GUI)、XML处理、数据库访问、反射、注解、...
12. **第12章:网络编程** - Socket编程模型 - HTTP协议及其实现方式 13. **第13章:数据库访问** - JDBC API介绍 - 数据库连接池管理 #### 三、重点知识点解析 - **面向对象编程(OOP)原理** 本书对OOP...
《Core Java Vol I 8th》是Java编程领域的一本经典教材,主要针对初学者和有一定基础的开发者,深入浅出地介绍了Java编程的核心概念和技术。这本书由Cay S. Horstmann和Gary Cornell合著,是Java学习者的重要参考...
《核心Java第一卷 第8版》是Java编程学习的经典教材,专为初学者和有一定经验的程序员设计。这本书深入浅出地介绍了Java编程语言的基础知识,涵盖了从基本语法到面向对象编程的重要概念。以下是该书可能涉及的一些...