JAVA泛型使用常用场景

文章讲述了在开发过程中泛型的使用,包括用泛型实现对象容器如HashMap,提供对象的存储和获取;利用泛型方法生成新对象,如JSON.parseObject();此外,还讨论了如何通过反射获取类的泛型信息。
摘要由CSDN通过智能技术生成

在公共组件开发过程中,泛型使用常常是框架灵活性的一个重要手段。

总结了一下,我在开发过程中泛型使用和设计主要是这几个方面

  • 对象容器,提供对象的存放和获取
  • 创建对象,提供对象的创建能力
对象容器

常见的比如我们的HashMap,看如下代码

    @Test
    public void mapTest() {
        HashMap<String, String> map = new HashMap<>();
        map.put("a", "b");

        String res = map.get("a");
        log.info("res:{}", res);
    }
对象生产

泛型方法,用于生成新对象

@Test
 public void createTest() {
        JSON.parseObject("", Person.class);
    }

泛型T主要用于约束,可以用于类型转换(比如 T t =(T)o;);但T不能直接生成对象,可以通过父子类

获得一个类的泛型
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class MyClass<T> {
    public static void main(String[] args) {
        MyClass<String> myClass = new MyClass<>();
        Type type = myClass.getClass().getGenericSuperclass();
        if (type instanceof ParameterizedType) {
            ParameterizedType parameterizedType = (ParameterizedType) type;
            Type[] typeArguments = parameterizedType.getActualTypeArguments();
            if (typeArguments.length > 0) {
                Class<?> typeArgument = (Class<?>) typeArguments[0];
                System.out.println(typeArgument.getSimpleName()); // 输出:String
            }
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值