大家好,今天小编关注到一个比较有意思的话题,就是关于java语言泛型的问题,于是小编就整理了2个相关介绍Java语言泛型的解答,让我们一起看看吧。
麻烦给我详细介绍下JAVA中用了泛型的好处,是不是用了泛型就可以不用NEW去创建对象了?
泛型的却很有用, 如果跟反射可以配合用好, 普通企业得代码量可以减少非常多. 2. python之类type inference语言比j***a更适合做这种template抽象
J***a为什么要有泛型?
j***a里的泛型是奇葩的存在。这也是我经常怼j***a的一个原因。
先说下泛型的主要作用:
1,强化类型安全,比如定义了一个List<String>,那么里面只能存放String,不允许存放其他类型(派生自String的除外)。类型安全应该在编译和运行时都能体现。
再说下j***a泛型奇葩之处:
1,j***a泛型实现的原理叫类型擦除,不管代码中怎么定义泛型,编译后都变成object, 因此不能实现运行时的类型安全。 而且j***a编译器不够聪明,可以很容易骗过去。 举个例子,你调用了第三方的接口返回List<String>,但实际拿到的值里面可能跟String没有半毛钱关系。
2,既然类型被擦除,那么类型转换就不可避免了,因此使用泛型和非泛型在性能上没有任何变化。
泛型即根据传入的参数不同返回不同的类型,比如返回给前端的是一个具体内容对象,我们就可以定义为泛型即具体内容可以传入不同的对象。
泛型的定义可以把某一相似的属性来接收不同的值。
人吃任何东西的过程都一样,只是可吃的东西各种各样:把东西放进嘴里,在嘴里把东西用牙齿嚼碎,舌头和唾液搅拌下咽下去。有了泛型就可以用带了表示东西的这个泛型参数的人表达这个场景。这个泛型参数是水果,就是人吃水果。这个泛型参数是饭,就是人吃饭。这个泛型参数是菜,就是人吃菜。好处就是同一个人就可复用吃。
到此,以上就是小编对于j***a语言泛型的问题就介绍到这了,希望介绍关于j***a语言泛型的2点解答对大家有用。