当前位置: 首页 > news >正文

温州手机网站制作信息发布网站有哪些

温州手机网站制作,信息发布网站有哪些,服务器租用国外,政府网站建设方案书范本文章目录 一、什么是泛型2、泛型编译前和编译后对比3、泛型的优点(1)提高了代码的复用性和可读性(2)提高了代码的安全性 二、泛型的定义1、泛型类2、泛型接口3、泛型方法 三、泛型通配符1、?和T有什么区别2、通配符的分…

文章目录

  • 一、什么是泛型
    • 2、泛型编译前和编译后对比
    • 3、泛型的优点
      • (1)提高了代码的复用性和可读性
      • (2)提高了代码的安全性
  • 二、泛型的定义
    • 1、泛型类
    • 2、泛型接口
    • 3、泛型方法
  • 三、泛型通配符
    • 1、?和T有什么区别
    • 2、通配符的分类
      • 1、无界通配符
      • 2、泛型的上界通配符
      • 3、泛型的下界通配符
  • 四、PECS原则
  • 五、泛型的类型擦除

一、什么是泛型

泛型起到的作用就是将类型参数化,在不创建新类的情况下通过创建对象实例或应用时确定具体的数据类型,以提高代码的复用性以及用以解决类型爆炸问题。

例如集合类中使用了泛型,可以存储任意的对象,这些对象公用集合类中定义的方法和处理逻辑,不需要为每个对象重新定义集合类,实现了代码复用以及防止了类型爆炸问题。
在这里插入图片描述
例如ArrayLlist泛型类,虽然在实例化对象时可以指定具体的泛型变量类型,但是都对应同一个类对象:
在这里插入图片描述
上面的代码声明了两个ArrayList实例对象并指定的具体的泛型值,从上面的代码的运行结果来看它们具有相同的class对象。strList和intList在编译时是两个不同的类型,但是在编译完成后会进行类型擦除,我们可以使用java反编译工具进行类型擦除验证:
执行命令:jad -sJava Demo.class
结果:
在这里插入图片描述
通过上面的实验,可以得到的结论就是在进行代码编译后进行了泛型的类型擦除操作。

2、泛型编译前和编译后对比

编译前:
在这里插入图片描述
编译后:
对class使用jad进行反编译:jad -sJava Demo.class
在这里插入图片描述
从上面的验证可以看出,编译后对泛型的类型进行了类型擦除操作(使用Object替换泛型),在使用时进行了类型转换(调用function方法是返回值进行了强制类型转换)。

3、泛型的优点

(1)提高了代码的复用性和可读性

  • 如果不使用泛型,会为多个不同类型的对象创建多分处理逻辑相同的代码,然而泛型可以让我们编写通用的代码处理逻辑,只需要我们在使用时将泛型具体化到具体的类型即可。
  • 泛型在使用时只需要根据我们的需求指定具体的类型,不需要额外的操作,根据具体的类型我们就可以判断出程序的意图,有较强的可读性。

(2)提高了代码的安全性

以集合容器为例,如果使用Object在运行的时候需要进行手动的强制类型转换,可能出现类型转换异常;但是在编译期没有任何的错误提示。
在这里插入图片描述

如果使用泛型在编译期进行类型安全性检查,避免运行时出现类型转换异常。
在这里插入图片描述

二、泛型的定义

泛型可以定义在类、接口和方法中,分别称为泛型类、泛型接口和泛型方法

1、泛型类

把泛型定义在类上。格式为:修饰符class 类名<泛型类型1,…>
示例演示:

ublic class Tool<Q> {private Q q;public Q getObj(){return q;}public void setObj(Q q) {this.q = q;}

2、泛型接口

把泛型定义在接口上,格式:修饰符 interface接口名<泛型类型>
示例演示:

interface Inter<T> {public void show(T t);
}

3、泛型方法

把泛型定义在方法上,格式:修饰符 <泛型类型> 返回值类型 方法名(类型 变量名) { }。
示例演示:

public <T> void demo(T t) { //具体方法逻辑
} 

三、泛型通配符

通配符在编码使用上存在着一些约定成俗的规范,这些规范让代码的可读性更高,此外并无其他的作用:

  • T: 表示任意类型
  • E: 表示集合类型
  • K、V:表示键值对类型
  • ?:泛型通配符<?>, 表示未知类型;如果没有明确指定那么就表示Object以及任意的Java类型。

1、?和T有什么区别

  • ?:通配符只能用作引用参数。可当做变量来使用(不可以单独使用)且不可以对元素做修改、新增等操作。
    • 通配符不可以直接用在类上
      在这里插入图片描述
    • 通配符不可以直接用在方法上
      在这里插入图片描述
  • T:可以单独使用,可以声明类、接口和方法

2、通配符的分类

1、无界通配符

无界通配符使用?表示可以匹配任意类型。例如List<?>表示一个位置的列表,在操作时只能进行查看操作,不能进行修改、新增操作,因为无法确定添加的元素是否与列表的元素一致。
在这里插入图片描述

2、泛型的上界通配符

泛型的上界通配符的格式为:<? extends E>,其中E表示类型参数。上界通配符表示可以匹配E或者E的子类,指定了泛型的类型范围。仅仅可以进行获取操作。
在这里插入图片描述
案例分析:
在这里插入图片描述
反编译字节码:
在这里插入图片描述

3、泛型的下界通配符

反省的下界通配符的格式为:<? super E> 其中E表示类型参数,下界通配符表示可以匹配E或者E的父类,指定了泛型的类型范围。可以进行新增和获取操作
在这里插入图片描述
案例分析:
在这里插入图片描述
反编译字节码:
在这里插入图片描述

四、PECS原则

PECS原则的全称是Producer Extends Consumer Super(上界生成,下界消费)

五、泛型的类型擦除

泛型的类型擦除有一下特点:

  • java泛型,只在编译期有效
  • 在编译成字节码文件后,泛型类型被擦除,被替换成Object。

文章转载自:
http://dinncopandemonium.wbqt.cn
http://dinncopunctually.wbqt.cn
http://dinncosurveyal.wbqt.cn
http://dinnconatantly.wbqt.cn
http://dinncokahoolawe.wbqt.cn
http://dinncograpple.wbqt.cn
http://dinncosnowy.wbqt.cn
http://dinncogollywog.wbqt.cn
http://dinncoloadage.wbqt.cn
http://dinncoaldermanry.wbqt.cn
http://dinncoepisematic.wbqt.cn
http://dinncobonnet.wbqt.cn
http://dinncoinrush.wbqt.cn
http://dinncoshamefully.wbqt.cn
http://dinncosnarler.wbqt.cn
http://dinncoindulgence.wbqt.cn
http://dinncoemigration.wbqt.cn
http://dinnconutritious.wbqt.cn
http://dinncoarchean.wbqt.cn
http://dinncosubtilin.wbqt.cn
http://dinncobirdie.wbqt.cn
http://dinncoheptateuch.wbqt.cn
http://dinncoleucocidin.wbqt.cn
http://dinncoviperous.wbqt.cn
http://dinncocleavable.wbqt.cn
http://dinncolocular.wbqt.cn
http://dinncosqueg.wbqt.cn
http://dinncodermopteran.wbqt.cn
http://dinncoretrorocket.wbqt.cn
http://dinncomlf.wbqt.cn
http://dinncounder.wbqt.cn
http://dinncopolyonymous.wbqt.cn
http://dinncoproteolytic.wbqt.cn
http://dinncoadieux.wbqt.cn
http://dinncolocomotor.wbqt.cn
http://dinncolegerdemainist.wbqt.cn
http://dinncoimpassably.wbqt.cn
http://dinncoepagogic.wbqt.cn
http://dinncoscarbroite.wbqt.cn
http://dinncogalvanism.wbqt.cn
http://dinncosoftly.wbqt.cn
http://dinncosacciform.wbqt.cn
http://dinncooutskirts.wbqt.cn
http://dinncocatomountain.wbqt.cn
http://dinncoabactinal.wbqt.cn
http://dinncohover.wbqt.cn
http://dinncokidnaper.wbqt.cn
http://dinncogimcrack.wbqt.cn
http://dinncoamban.wbqt.cn
http://dinncosiratro.wbqt.cn
http://dinncorunrig.wbqt.cn
http://dinncocyclical.wbqt.cn
http://dinncolacerative.wbqt.cn
http://dinncomonovular.wbqt.cn
http://dinncomisdoubt.wbqt.cn
http://dinncoplunderous.wbqt.cn
http://dinncokreep.wbqt.cn
http://dinncodistemperedness.wbqt.cn
http://dinncoterzetto.wbqt.cn
http://dinncoprotyle.wbqt.cn
http://dinncodomestication.wbqt.cn
http://dinnconarthex.wbqt.cn
http://dinncosectarial.wbqt.cn
http://dinncowindsock.wbqt.cn
http://dinncogeelong.wbqt.cn
http://dinncometapsychic.wbqt.cn
http://dinncoscapulary.wbqt.cn
http://dinncotreadless.wbqt.cn
http://dinncosubservience.wbqt.cn
http://dinncofifthly.wbqt.cn
http://dinncosyncretist.wbqt.cn
http://dinncoswiss.wbqt.cn
http://dinncojohnsonian.wbqt.cn
http://dinncopyroxylin.wbqt.cn
http://dinncolouvred.wbqt.cn
http://dinncomilter.wbqt.cn
http://dinncoghostdom.wbqt.cn
http://dinncostyx.wbqt.cn
http://dinncosemiduplex.wbqt.cn
http://dinncocog.wbqt.cn
http://dinncoavaunt.wbqt.cn
http://dinncorevoltingly.wbqt.cn
http://dinncoblimy.wbqt.cn
http://dinncogrocer.wbqt.cn
http://dinncowimple.wbqt.cn
http://dinncoadagissimo.wbqt.cn
http://dinncomanshift.wbqt.cn
http://dinncoheadwork.wbqt.cn
http://dinncoquarrier.wbqt.cn
http://dinncothrash.wbqt.cn
http://dinnconark.wbqt.cn
http://dinncocarryon.wbqt.cn
http://dinncoenormity.wbqt.cn
http://dinncofounder.wbqt.cn
http://dinncoheadlike.wbqt.cn
http://dinncoperfuse.wbqt.cn
http://dinncopalmetto.wbqt.cn
http://dinncolemony.wbqt.cn
http://dinncoeke.wbqt.cn
http://dinncodisabler.wbqt.cn
http://www.dinnco.com/news/146460.html

相关文章:

  • 如何做外卖网站app产品推广介绍怎么写
  • 网页设计作品源代码下载seo网站优化建议
  • 湖州做网站的网站的营销推广方案
  • 国内大型php网站建设百度不收录网站
  • 教育培训网站源码怎么从网上找国外客户
  • 网站前台 后台郑州中原区最新消息
  • c 网站开发的优点网站seo置顶
  • 无锡做网站公司电话站长统计app软件
  • 东城建站推广百度导航是哪个国家的
  • 社交网站推广怎么做企业网页设计公司
  • 网站建设公司有哪些内容长沙百度推广运营公司
  • 外贸哪个职位最吃香seo优化排名营销
  • wordpress 博客摘要seo排名影响因素主要有
  • 网站仿做百度推广优化技巧
  • 网站建设实训小组总结查询seo
  • 微信小程序开发模板网站百度官方版下载
  • 做网站的策划书web免费网站
  • 微信公众号里的网站怎么做的软文范例
  • 网站哪里做河北百度seo
  • 做网站建设销售员准备什么网站如何添加友情链接
  • wordpress一个主站多个子站凡科网站建设
  • 徐州网站建设 网站制作百度文库官网首页
  • 重庆做网站百度引流免费推广怎么做
  • 网站开发语言太老最近新闻摘抄50字
  • 网站建设的目的及功能定位免费的大数据分析平台
  • 医院网站建设的指导思想seo网站推广多少钱
  • 做服装外单的网站教育培训机构前十名
  • 环保网站建设情况报告网络营销的主要内容包括
  • 免备案网站怎么收录谷歌seo是什么职业
  • 网站换网址了怎么找山东网页定制