<T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!

 

 


泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

  Java语言引入泛型的好处是安全简单。

  在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,

而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常

,这是一个安全隐患。

  泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

  泛型在使用中还有一些规则和限制:

  1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

  2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

  3、泛型的类型参数可以有多个。

  4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上成为“有界类型”。

  5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName(java.lang.String);

  泛型还有接口、方法等等,内容很多,需要花费一番功夫才能理解掌握并熟练应用。在此给出我曾经了解泛型时候写出的两个例子(根据看的印象写的),

实现同样的功能,一个使用了泛型,一个没有使用,通过对比,可以很快学会泛型的应用,学会这个基本上学会了泛型70%的内容。

  例子一:使用了泛型

Java code

public class Gen<T> {
    private T ob; //定义泛型成员变量  

    public Gen(T ob) {
        this.ob = ob;
    }

    public T getOb() {
        return ob;
    }

    public void setOb(T ob) {
        this.ob = ob;
    }

    public void showTyep() {
        System.out.println("T的实际类型是: " + ob.getClass().getName());
    }
}


public class GenDemo {
    public static void main(String[] args) {
        //定义泛型类Gen的一个Integer版本 
        Gen<Integer> intOb = new Gen<Integer>(88);
        intOb.showTyep();
        int i = intOb.getOb();
        System.out.println("value= " + i);
        System.out.println("----------------------------------");
        //定义泛型类Gen的一个String版本 
        Gen<String> strOb = new Gen<String>("Hello Gen!");
        strOb.showTyep();
        String s = strOb.getOb();
        System.out.println("value= " + s);
    }
}


运行结果:

 

 


例子二:没有使用泛型

 

 

Java code

public class Gen2 {
    private Object ob;

    //定义一个通用类型成员 
    public Gen2(Object ob) {
        this.ob = ob;
    }

    public Object getOb() {
        return ob;
    }

    public void setOb(Object ob) {
        this.ob = ob;
    }

    public void showTyep() {
        System.out.println("T的实际类型是: " + ob.getClass().getName());
    }
} 


public class GenDemo2 {
    public static void main(String[] args) {
        //定义类Gen2的一个Integer版本 
        Gen2 intOb = new Gen2(new Integer(88));
        intOb.showTyep();
        int i = (Integer) intOb.getOb();
        System.out.println("value= " + i);
        System.out.println("----------------------------------");
        //定义类Gen2的一个String版本 
        Gen2 strOb = new Gen2("Hello Gen!");
        strOb.showTyep();
        String s = (String) strOb.getOb();
        System.out.println("value= " + s);
    }
}


运行结果:




  看明白这个,你的三个问题就自然而然的明白了

 

 

 

liwenqiang758
关注 关注
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Java开发 - MybatisPlus框架初体验
CodingFire的博客
03-31 1362
我们已经学习过Mybatis框架,基于一定的目的或者需求,我们希望提升此框架的应用效率,于是MyBatisPlus框架就来了,如果说Mybatis框架的快乐是1倍,那么MyBatisPlus带给你的快乐将是double,MyBatisPlus不会改变原有的项目结构,只做增强,你可以轻松引入,简化开发,提高效率。话不多说,下面我们就开始今天的MyBatisPlus之旅。正如前言所说,MyBatisPlus只是为了提高开发效率。(简称 MP)是一个。
BAT 大厂Java 面试题集锦之核心篇附参考答案
程序员光剑
11-05 1万+
核心篇数据结构与算法网路:TCP/IP,HTTP操作系统, 文件, shell, CPU, IO, epoll, 非阻塞IO,进程/线程/协程,锁HashMap, Co...
实体类extends Serializable
Richard_M_CH的博客
08-02 3231
hibernate有二级缓存,缓存会将对象写进硬盘,就必须序列化,以及兼容对象在网络中的传输 等等。 java中常见的几个类(如:Interger、String等),都实现了java.io.Serializable接口。 实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类本身都是可序列化的。这个序列化...
泛型类型通常在Dao和Service 中使用BaseDao<T extends Serializable>的泛型
weixin_34034261的博客
05-26 232
最近朋友几篇文章介绍了改泛型类型的文章. 关联文章的地址     经常看到那些写好的项目的dao是用的泛型,就不不理解为什么,看到了这个论坛上的两个例子,粘给大家:     泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操纵的数据类型被指定为一个参数。这类参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。     Java语言引入泛型的好处...
通常在Dao和Service 中使用BaseDao<T extends Serializable>的泛型
阿狸_桃子
05-26 2396
经常看到那些写好的项目的dao是用的泛型,就不不理解为什么,看到了这个论坛上的两个例子,粘给大家: 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。   Java语言引入泛型的好处是安全简单。   在Java SE 1.5之前,没有泛型的情况的下,通
public interface BaseService「T,ID extends Serializable」{}参数是什么意思
小肥羊的博客
07-07 2348
public interface BaseService<T,ID extends Serializable>{ //ID是泛型的参数,这个ID一定要是一个实现了Serializable的类型,所谓的Serializable,就是java提供的通用数据保存和读取的接口。至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。这样,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化
Java范型浅析
华丽的痘痘
08-17 1万+
        从jdk1.5开始,Java中开始支持范型了。范型是一个很有用的编程工具,给我们带来了极大的灵活性。在看了《java核心编程》之后,我小有收获,写出来与大家分享。        所谓范型,我的感觉就是,不用考虑对象的具体类型,就可以对对象进行一定的操作,对任何对象都能进行同样的操作。这就是灵活性之所在。但是,正是因为没有考虑对象的具体类型,因此一般情况下不可以使用对象自带的接口函数
Serializable 序列化笔记
?_#的博客
04-24 172
序列化和反序列化是java中进行数据存储和数据传输的一种方式。序列化是把对象转化为字节的过程,反序列化反之。 序列化的场景? 网络通信中以字节传输 数据的存储 如何序列化? 实现Serializable 接口 实现Externalizable 接口,其中Externalizable 接口继承了Serializable 接口 需求:将User 类序列化到 test.txt 文件中 (1)Use...
这个疯子整理的十万字Java面试题汇总,终于拿下40W offer!(JDK源码+微服务合集+并发编程+性能优化合集+
m0_67401134的博客
07-23 2381
Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。...
[Java 8] (3) 字符串遍历和Comparator接口
不忘初心,好好沉淀
10-23 1万+
遍历一个字符串 在Java 8中,CharSequence接口新添加了一个方法叫做chars(),方法的签名是这个样子的: public default IntStream chars() default关键字修饰的接口方法是Java 8中新添加的特性,目的是向接口中添加已经实现的方法。chars()方法返回了一个IntStream类型,所以chars()实际上是为所有实现
Redis实战(8)-有序集合SortedSet典型应用场景实战之游戏充值排行榜
青松之竹_Java博客
02-10 1424
概述:本系列博文所涉及的相关内容来源于debug亲自录制的实战课程:缓存中间件Redis技术入门与应用场景实战(SpringBoot2.x + 抢红包系统设计与实战),感兴趣的小伙伴可以点击自行前往学习(毕竟以视频的形式来掌握技术 会更快!)文章所属技术专栏:缓存中间件Redis技术入门与实战 摘要:缓存中间件Redis的数据结构~有序集合SortedSet在实际项目开发中还是比较常见的,特别...
Serializable(序列化) 实现java深度拷贝
byyunnk的专栏
05-08 685
/**  * 通过序列化方式来处理java深度拷贝的问题,在内存中通过字节流的拷贝来实现,也就是把母  * 对象写到一个字节流中,再从字节流中将其取出来,这样就可以重建一个新对象,该对象与母  * 对象之间不存在引用共享的问题,也就相当于深拷贝了一个新对象,代码如下,当然还有其它方法,  * 在此就先提到序列化实现深度拷贝的问题,  * @author mary  *  */
T extends Comparable? super T用法详解
mwj0001的博客
08-19 1482
<T extends Comparable<? super T>>用法详解 Java泛型命名 E - Element (used extensively by the Java Collections Framework) K - Key N - Number T - Type V - Value S,U,V etc. - 2nd, 3rd, 4th types 举例详解 <T extends Comparable<? super T>>用法 这里运用了jav
MybatisPlus基本查询
热门推荐
Dawn的博客
08-30 2万+
通过MybatisPlus实现基本的查询方法
Ts extends 泛型约束
qq_56303170的博客
05-12 5823
extends 泛型约束 我们一般使用extends来继承接口或者类,但是extends还可以用来泛型约束 function getCnames<T extends { name: string }>(entities: T[]):string[] { return entities.map(entity => entity.cname) } 比如,以上代码对传入的参数进行了约束,传入的参数必须要有name这个属性,否则就会出错 条件类型与高阶类型 extends还有一大用途就是用来
序列化的两种方法:Serializable 接口和 Externalizable接口
qq_24879593的博客
06-13 814
通过Serializable接口是java内部已经封装好了,而java.io.Externalizable的所有实现者必须提供读取和写出的实现。 java.io.Externalizable接口: voidreadExternal(ObjectInput in) void writeExternal(ObjectOutput out) 现在如何实现readExternal()
java 泛型 t extends_困扰多年的Java泛型 extends T> super T>,终于搞清楚了!
weixin_39604516的博客
02-12 918
一、为什么要用通配符和边界?使用泛型的过程中,经常出现一种很别扭的情况。比如我们有Fruit类,和它的派生类Apple 然后有一个最简单的容器:Plate类盘子里可以放一个泛型的”东西”我们可以对这个东西做最简单的“放”和“取”的动作:set( )和get( )方法。 现定义一个“水果盘”,逻辑上水果盘当然可以装苹果。 但实际上Java编译器不允许这个操作。会报错,“装苹果的盘子”无法转换成“装水...
java中的接口Serializable的作用和例子
Macroli
10-08 3412
作用:没有implements Serializable,你就不能通过rmi(包括ejb)提供远程调用。 serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。 serialization不但可以在本机做,而且可以经由网络操作(就是猫小说的RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异
Java序列化Serializable
zjm807778317的博客
05-28 1196
在数据传输过程中,两者需要协商好相应的传输协议和文件格式,Java给我们提供了一种方案Serializable,这篇我们对Serializable的使用和原理进行简单解析。
<T extends UserDetailsService> DaoAuthenticationConfigurer<AuthenticationManagerBuilder, T>,这种写法是什么意思
最新发布
06-09
`<T extends UserDetailsService> DaoAuthenticationConfigurer<AuthenticationManagerBuilder, T>` 这种写法是 Java 中的泛型限定语法,表示 `T` 必须是 `UserDetailsService` 的子类型或实现类。在 `DaoAuthenticationConfigurer` 类中,`T` 被用作 `UserDetailsService` 的实现类,用于加载用户信息。通过 `<T extends UserDetailsService>` 的限定,可以确保传入的 `T` 类型是实现了 `UserDetailsService` 接口,从而避免了在运行时可能出现的类型转换错误。
写文章

热门文章

  • <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了! 16617
  • 关于Ext.data.ArrayStore的用法 12677
  • Ext.Msg.wait()用法 6937
  • BIEE11g安装 5513
  • CDH5.1.0 HIVE mysql 配置远程元数据库 4643

分类专栏

  • mybatis
  • 每日一语 5篇
  • junit4
  • 设计模式 1篇
  • js 4篇
  • mysql 1篇
  • sqoop
  • spring 1篇
  • Tomcat

最新评论

  • 开发者需知的10类工具

    这我可不懂: 3款强大到离谱的电脑软件,个个提效神器,从此远离加班https://blog.csdn.net/wangonik_l/article/details/129125099?spm=1001.2014.3001.5501

  • <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!

    liwenqiang758: 嗯,哪里不明白,我们交流下

  • <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!

    liwenqiang758: 当年写的时候还没格式化的功能

  • <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!

    紧握)筹码 回复 qq_42192001: 我也没明白,看的我真难受

  • <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!

    小菜灬: 示例代码,没有格式.............

最新文章

  • ketTool openssl
  • Production Checklist 翻译
  • rabbit mq Consumer Acknowledgements and Publisher Confirms 翻译
2020年3篇
2019年3篇
2018年2篇
2016年2篇
2015年1篇
2013年4篇
2012年19篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家苏州玻璃钢人物雕塑批发黔东南商场美陈拱门郑州锻铜玻璃钢景观雕塑报价宣城公园玻璃钢雕塑定制东莞透明玻璃钢雕塑工艺琼海玻璃钢游乐场门头雕塑基督教玻璃钢雕塑定做南平玻璃钢玩偶雕塑金色玻璃钢花盆批发衡阳市玻璃钢雕塑玻璃钢花盆怎么养花温州特色玻璃钢雕塑摆件肇庆玻璃钢雕塑销售杨浦区玻璃钢雕塑推荐本溪玻璃钢雕塑生产厂家白山玻璃钢雕塑工厂新乡天桥玻璃钢花盆生产厂家玻璃钢雕塑做漆老是裂缝怎么办成都玻璃钢雕塑摆件设计企业广东玻璃钢金属雕塑设计句容商场装饰美陈台湾商场美陈雕塑湖北玻璃钢果蔬雕塑金华景观玻璃钢雕塑吉安动物玻璃钢雕塑北京主题商场美陈订购杭州玻璃钢雕塑工程宿州水果玻璃钢雕塑供应商广西校园玻璃钢雕塑西安 玻璃钢花盆批发价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化