JAVA进阶-泛型
>泛型:泛型指代了參数的类型化类型,一般被用在接口。类。方法中
>作用:用来确定參数的范围,在书写代码的时候提前检查代码的错误性
>泛型的声明,下面给出类声明,依此类推:
class ClassName<T>{}
class ClassName<K,V,O>{}
>通用符:<?>一般指定全部的类
>限定符:<T exteds 超类>
1)限定符字母仅仅能被限定一次
2)当extends的时候仅仅能使用大写字母,当super的时候仅仅能使用"?"
3)在类中不能使用super限定符号。
4)在类中的限定符能被方法继续使用。
5)接口中声明时有限定符号,其子类也必须有。
class Book<T extends Number>{
void go(Stack<T> stack){
}
public void go2(Stack<?
super Number> stack2){
}
}
1.參数转换>
声明:
class Book<T extends Number>{}
引用:
Book<Number> numBook=new Book<Number>();
Book<Integer> numBook2=new Book<Integer>();
// 同一层级上的參数显式或者隐式的转换都是错误的
// numBook=(Book<Number>)numBook2;
2.比較和赋值:
声明:
class CompareClass<T>{
T a;
CompareClass(T t){
this.a=t;
}
}
比較:
CompareClass<Float> f=new CompareClass<Float>();
CompareClass<Integer> i=new CompareClass<Integer>();
f==i?这样的结果会产生编译错误;
赋值:
f=i;?相同也会产生编译错误。
2.类型參数数组>
声明:
T[] t;
定义:
T[] t=new int[10];//编译错误
改动:
T[] t;
int[] in=new int[]{10,20};
t=in;
3.类型參数静态使用>因为类型參数仅仅有在实例化的时候才确定类型,因此
例如以下的代码。把类型參数作为静态变量将会引发编译错误;
class Person<K,V>{
static K name;
static V age;
static V getName(){
return age;
}
}
JAVA进阶-泛型的更多相关文章
- Java进阶 | 泛型机制与反射原理
一.泛型的概念 1.基础案例 泛型在Java中的应用非常广泛,最常见则是在集合容器中,先看下基础用法: public class Generic01 { public static void main ...
- Java进阶代码
本文重在温习……不过初学以及进阶高手不可错过 1. public static void arraycopy(全小写)(object src,int srcPos,object dest,int d ...
- Java进阶(三十五)java int与integer的区别
Java进阶(三十五)java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象 ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- Java进阶4表达式中的陷阱
Java进阶4表达式中的陷阱 20131103 表达式是Java中最基本的组成单元,各种表达式是Java程序员最司空见惯的内容,Java中的表达式并不是十分的复杂,但是也有一些陷阱.例如当程序中使用算 ...
- (转)Java进阶java int与Integer的区别
Java进阶java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象,用一个引 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- Java线程间通信方式剖析——Java进阶(四)
原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...
随机推荐
- Blender插件初始化范例
目标 [x] 总结Blender插件初始化范例 总结 插件模板 Blender内部插件实现方式模板功能总结如下: 定义了子模块重加载方式 定义了批量加载子模块的方式 插件注册函数 插件注销函数 模块总 ...
- Zeppelin0.6.2之shiro安全配置 初探
0.序 默认情况下,Zeppelin安装好并且配置完zeppelin-site.xml和zeppelin-env.sh后,我们进入的模式,从右上角就能看出来是anonymous模式,这种模式下会看见所 ...
- BZOJ 3876 有上下界的网络流
思路: 套用有上下界的网络流 就好了 (这算是裸题吧) 比如 有条 x->y 的边 流量上限为R 下限为L 那么du[x]-=L,du[y]+=L 流量上限变成R-L du[x]>0 ...
- 2.sql server的管理
sql server的管理:需要安装sql server 2005或者sql server 2008,若要使用sqlserver管理工具进行开发还要安装sql server management st ...
- HTML+CSS(10)
n 组合选择器 多元素选择器 n 描述:给多个元素加同一个样式,多个选择器之间用逗号隔开. n 举例:h1,p,div,body{color:red;} 后代元素选择器(最常用) n 描述:给 ...
- 通过Static 字段来维护状态是不是一个好主意
static是申明静态字段.静态方法或者静态类的修饰符.使用static申明的字段属于类型本身而不属于任何字段,声明的类也具有一些特别特性,比如不能实例化,不能继承等.用通俗化的语言来说,static ...
- Content-Encoding值
Content-Encoding值 gzip 表明实体采用GNU zip编码 compress 表明实体采用Unix的文件压缩程序 deflate 表明实体是用zlib的格式压缩的 identity ...
- Node.js 常用Mongoose方法
Node.js 手册查询-Mongoose 方法 一.Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构 ...
- idea搭建第一个springboot
1.打开idea开发工具,在菜单栏选择File-->New-->Project...-->Spring Initializer说明:社区版的idea是没有Spring Initial ...
- eas之编辑表单元格
--指定表列行单元不可编辑 // 锁定表格.行.列.单元 table.getStyleAttributes().getProtection().setLocked(true); row.getStyl ...