![](https://img-blog.csdnimg.cn/49e8a714e7404d2183f60da07ecb31d4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
泛型
泛型
gzh-程序员灿灿
这个作者很懒,什么都没留下…
展开
-
2.<T> T和T的用法
文章目录T泛型类 T的使用 T泛型类 使用场景: 一个类提供通用的功能,入参不确定类型,这时就可以使用泛型类T @Data public class GenericTopic<T> { private T t; } 应用: GenericTopic<String> genericTopic = new GenericTopic(); genericTopic.setT("字符串类型"); // 在get泛型类的t成员变量时,类型已经确定 String value = gen原创 2021-09-27 14:53:43 · 351 阅读 · 0 评论 -
7.抽象泛型
@Data public abstract class RespTypeDTO<T extends CommonRespDTO> implements Serializable { private Long timestamp; }原创 2021-12-09 19:49:08 · 88 阅读 · 0 评论 -
5.泛型的好处
使用泛型的好处有哪些,结合场景 优点: 不需要做强制类型转换 编译时更安全。如果使用Object类的话,你没法保证返回的类型一定是Foo,也许是其它类型。这时你就会在运行时得到一个类型转换异常(ClassCastException) 提高代码的重用率,泛型统一发方法 限定类型安全以及消除类型强制转换 不使用泛型存在的问题:这里限定了某个key对应的类型是Long类型,只有提供方知道数据类型是什么,使用数据方不清楚数据类型 Map<String, Object> map = Maps.newH原创 2021-12-09 19:47:57 · 457 阅读 · 0 评论 -
4.泛型和Object
泛型和Object package com.enterprise.article.base.generic; public class TestGeneric2<T> { public <T> T test(T t) { return t; } public static void main(String[] args) { TestGeneric2 objectTestGeneric2 = new TestGeneric2原创 2021-09-27 15:39:58 · 208 阅读 · 0 评论 -
1.通配符?和T的区别
文章目录通配符?和T的区别 通配符?和T的区别 T: 是一个形参,理解为一个占位符。会在程序运行时替换成具体的类型,为此只关注泛型的方式时,只有在运行时,才能确定T的具体类型是什么。 ?: 是一个实参,是Java定义的特殊类型,比Object更特殊。List<Object>和List<String>没有关系,List<?>和List<String>存在父子关系。如下图 区别一: List<?>遍历时不关心元素类型,默认元素类型是Object或者父原创 2021-09-27 14:50:46 · 439 阅读 · 0 评论 -
3.泛型类型范围限定
文章目录泛型提供通用方法指定泛型类型的范围,使用extends或superextends继承demo泛型多继承 泛型提供通用方法 /** * clazz对象创建一个新的实例对象并返回 * * @param clazz class对象 * @return * @throws IllegalAccessException */ public static <T> T test(Class<T> clazz) throws InstantiationException, IllegalAc原创 2021-09-27 14:54:58 · 727 阅读 · 0 评论 -
6.接口泛型
public interface InterfaceGeneric<T> { void getName(T t); } class impl implements InterfaceGeneric<String> { @Override public void getName(String s) { } }原创 2021-12-09 19:48:25 · 147 阅读 · 0 评论 -
8.泛型继承和实现
public class Test{ public static void main(String[] args) { } } class Father<T>{ } interface ARB<E>{ } class child<T,E> extends Father<T> implements ARB<E>{ }原创 2021-12-09 19:49:54 · 73 阅读 · 0 评论 -
接口和抽象类
接口和抽象类的使用动机不同,从而决定是使用接口还是使用抽象类 使用抽象类是为了代码的复用,使用接口是为了实现多态,当不确定使用接口还是使用抽象类时,就从使用目的出发决定,提高代码复用性就是用抽象类,想实现多态就是用接口。 使用抽象类的目的是抽离重复代码。 使用接口类的目的是实现多态。 ...原创 2021-12-09 19:50:24 · 169 阅读 · 0 评论