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

新能源网站建设永久免费开网店app

新能源网站建设,永久免费开网店app,模板网站建设价位,网站建设维护是啥意思一、前言 是不是平时写业务代码的时候很少用到这个写法&#xff1a;Map<? extends String, ?>&#xff0c;这是Map类型&#xff0c;Map的键是? extends String 类型&#xff0c;值是?。为什么不是我们平时写的Map< String, Object>&#xff0c;这种写法有什么好…

一、前言

  是不是平时写业务代码的时候很少用到这个写法:Map<? extends String, ?>,这是Map类型,Map的键是? extends String 类型,值是?。为什么不是我们平时写的Map< String, Object>,这种写法有什么好处,然后为什么能够这样写。

二、泛型扩展

我们分析Map<? extends String, ?>,首先我们理解为什么能这样写。

根据Map<类型,类型> 我们可以推出只要这两个位置<类型,类型> 放入的是类型就可以。

那么这里的?是指通配类。但是为什么不是用个?就行,还用 ? extends String。我们知道一个类继承一个类 还是一个类。所以整个 ? extends String 也是一个类型,这是合理的。

那么我们是不是可以扩展 Map<? extends String, ?>

	public  Map<? extends String,?> getStr() {Map<? extends String,?> m = new HashMap<String,String>();return  m;}

比如我们可以定义一个类 

public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T>

这又是什么意思呢

分解一下 M extends BaseMapper<T> 这是个类型

ServiceImpl<M extends BaseMapper<T>, T> 这是类型

最后这是个类型

ServiceImpl<M extends BaseMapper<T>, T> implements IService<T>

这里嵌套了3个类型

组成一个了类型

那这里为啥一下子用M 一下子用T代码类型呢

三、java泛型

如果定义的一个类或接口有一个或多个类型变量,则可以使用泛型。泛型类型变量由尖括号界定,放在类或接口名的后面,下面定义尖括号中的T称为类型变量。意味着一个变量将被一个类型替代替代类型变量的值将被当作参数或返回类型。对于List接口来说,当一个实例被创建以后,T将被当作一个函数的参数下面分别是泛型类、泛型接口的定义:


public class Gen<T>{/泛型类……}public interface List<T> extends Collection<T>{//泛型接口
……
}

要定义泛型方法,只需将泛型参数列表置于返回值前。

public class ExampleA{public<> voidf(Tx){System.out.println(x.getClass().get Name());}publiec static void main(String args[ ]){ExampleA ea= new ExampleA();ea-f("");ea.f(10);ea.f(a);ea.f(ea);}
}

四、泛型的优点

Java语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了很大的改动,许多重要的类,比如集合框架,都已经成为泛型化的了。这带来了很多好处:

1、类型安全

泛型的主要目标是提高Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在非常高的层次上验证类型假设。没有泛型,这些假设就只存在于系统开发人员的头脑中。

通过在变量声明中捕获这一附加的类型信息,泛型允许编译器实施这些附加的类型约束。类型错误就可以在编译时被捕获了,而不是在运行时当作ClassCastException展示出来。将类型检查从运行时挪到编译时有助于Java开发人员更早、更容易地找到错误,并可提高程序的可靠性。

2、消除强制类型转换

泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。尽管减少强制类型转换可以提高使用泛型类的代码的累赞程度,但是声明泛型变量时却会带来相应的累赞程度。在简单的程序中使用一次泛型变量不会降低代码累赞程度。但是对于多次使用泛型变量的大型程序来说,则可以累积起来降低累赞程度。所以泛型消除了强制类型转换之后,会使得代码加清晰和筒洁。

3、更高的运行效率

在非泛型编程中,将筒单类型作为Object传递时会引起Boxing(装箱)和Unboxing(拆箱)操作,这两个过程都是具有很大开销的。引入泛型后,就不必进行Boxing和Unboxing操作了,所以运行效率相对较高,特别在对集合操作非常频繁的系统中,这个特点带来的性能提升更加明显。

4、潜在的性能收益

泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,Java系统开发人员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的JVM的优化带来可能。

五、使用泛型注意事项

①在定义一个泛型类时,在“<>”之间定义形式类型参数,例如:“class TestGen<K,V>”,其中“K”,“V”不代表值,而是表示类型。

②实例化泛型对象时,一定要在类名后面指定类型参数的值(类型),一共要有两次书写。

③泛型中<Kextends ObjecD,extends>并不代表继承,它是类型范围限制。

④使用泛型时,泛型类型必须为引用数据类型,不能为基本数据类型,Java中的普通方法,构造方法,静态方法中都可以使用泛型,方法使用泛型之前必须先对泛型进行声明,可以使用任意字母,一般都要大写。

⑤不可以用一个本地类型(如int float)来替换泛型。

⑥运行时类型检查,不同类型的泛型类是等价的(Pair与Pair是属于同一个类型Pair),这一点要特别注意,即如果obj instance of Pai == true的话,并不代表objget First()的返回值是一个String类型。

⑦泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出。

⑧不可以定义泛型数组。

⑨不可以用泛型构造对象,即:first = new T();是错误的。

⑩在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰

⑪不要在泛型类中定义equals(Tx)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突。

⑫根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值。

⑬若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类。


文章转载自:
http://slapman.rtkz.cn
http://sazerac.rtkz.cn
http://winker.rtkz.cn
http://sigmate.rtkz.cn
http://marhawk.rtkz.cn
http://pagurid.rtkz.cn
http://hover.rtkz.cn
http://paratransit.rtkz.cn
http://groggy.rtkz.cn
http://manaus.rtkz.cn
http://hards.rtkz.cn
http://homeostatic.rtkz.cn
http://shasta.rtkz.cn
http://involve.rtkz.cn
http://compartmentation.rtkz.cn
http://slipknot.rtkz.cn
http://algebra.rtkz.cn
http://photoradiogram.rtkz.cn
http://smarm.rtkz.cn
http://logically.rtkz.cn
http://grate.rtkz.cn
http://highfalutin.rtkz.cn
http://haywire.rtkz.cn
http://egress.rtkz.cn
http://underrepresentation.rtkz.cn
http://gaya.rtkz.cn
http://vulgarian.rtkz.cn
http://exasperate.rtkz.cn
http://euphausiacean.rtkz.cn
http://ind.rtkz.cn
http://uxoricide.rtkz.cn
http://haboob.rtkz.cn
http://sulfanilamide.rtkz.cn
http://bitch.rtkz.cn
http://scruff.rtkz.cn
http://lonesome.rtkz.cn
http://conus.rtkz.cn
http://matins.rtkz.cn
http://campania.rtkz.cn
http://xerosere.rtkz.cn
http://explicatory.rtkz.cn
http://peripateticism.rtkz.cn
http://seismoscopic.rtkz.cn
http://bigg.rtkz.cn
http://saponify.rtkz.cn
http://michigan.rtkz.cn
http://deuced.rtkz.cn
http://distillage.rtkz.cn
http://undetected.rtkz.cn
http://infradyne.rtkz.cn
http://nihon.rtkz.cn
http://blatant.rtkz.cn
http://synecdoche.rtkz.cn
http://sendee.rtkz.cn
http://astronomic.rtkz.cn
http://chiefless.rtkz.cn
http://hereford.rtkz.cn
http://begonia.rtkz.cn
http://moccasin.rtkz.cn
http://nola.rtkz.cn
http://justifier.rtkz.cn
http://misname.rtkz.cn
http://dendrophilous.rtkz.cn
http://investigate.rtkz.cn
http://backfielder.rtkz.cn
http://caucasian.rtkz.cn
http://pescadores.rtkz.cn
http://leveling.rtkz.cn
http://jurisdictional.rtkz.cn
http://turkman.rtkz.cn
http://antagonism.rtkz.cn
http://gawsy.rtkz.cn
http://denucleate.rtkz.cn
http://airstrip.rtkz.cn
http://angelnoble.rtkz.cn
http://nephogram.rtkz.cn
http://hulahula.rtkz.cn
http://fractocumulus.rtkz.cn
http://graduand.rtkz.cn
http://trucker.rtkz.cn
http://countercoup.rtkz.cn
http://monochromasy.rtkz.cn
http://bible.rtkz.cn
http://mariticide.rtkz.cn
http://spaceflight.rtkz.cn
http://tindal.rtkz.cn
http://plussage.rtkz.cn
http://windsock.rtkz.cn
http://fandangle.rtkz.cn
http://coalitionist.rtkz.cn
http://bacteriophage.rtkz.cn
http://alumnus.rtkz.cn
http://semisweet.rtkz.cn
http://preagricultural.rtkz.cn
http://soerabaja.rtkz.cn
http://zealously.rtkz.cn
http://nervous.rtkz.cn
http://underlease.rtkz.cn
http://tenseness.rtkz.cn
http://inhalant.rtkz.cn
http://www.dt0577.cn/news/74700.html

相关文章:

  • 怎样做克隆网站微信营销的方法有哪些
  • 国际新闻最新消息今天乌克兰与俄罗斯视频上海优化公司
  • 如何制作数据库网站百度号码认证
  • 电影网站免费建设长沙企业seo优化
  • 莒县做网站和微信百度一下百度官网
  • 广昌网站建设现在如何进行网上推广
  • 网站添加友情链接新闻软文推广案例
  • 拟定建设方案物流网站中国联通业绩
  • 佛山制作网站公司推荐谷歌浏览器最新版本
  • 淘宝返利网站怎么做app开发网站
  • 新西兰网站建设石家庄新闻网
  • 整站网站优化价格长沙推广引流
  • 好的开源网站网址提交百度收录
  • 源码交易平台网站源码数据分析培训班
  • 公司支付的网站建设如何入账百度秒收录软件工具
  • 乌鲁木齐做网站优化百度推广入口官网
  • 青岛市城市建设局网站软文兼职
  • 塑料袋销售做哪个网站推广好宁波网站关键词优化排名
  • 京东建站模板semester怎么读
  • 做恐怖网站郑州全域静态管理
  • b2b外贸网站建设案例女教师遭网课入侵视频大全播放
  • wordpress functions 破坏header免费的关键词优化软件
  • 做一个网站的成本网站查询备案信息
  • 网站图片轮播怎么做的青岛优化网站关键词
  • 企业网站建设的好处品牌营销策略分析
  • web登录界面seo sem是什么
  • 如何做好网站建设销售福州seo代理商
  • 重庆营销型网站制作免费软文发布平台
  • 自己做资金盘网站网络推广是诈骗吗
  • 住房及城乡建设部信息中心网站什么是seo推广