Java中的Type接口和Class类有什么区别

Type是Class的父接口。

Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。

 

这里举个当Type是参数化类型的例子:

public class B<T,K> {
}


package test;

public class Book extends B<String,Integer>{
}


import test.B;
import test.Book;
import java.lang.reflect.Type;

public class Main {
    public static void main(String[] args) {
        Book book=new Book();
        Class cbook=book.getClass();
        //获取Book类的直接超类的Type
        Type type=cbook.getGenericSuperclass();
        Class cb=new B().getClass();

        System.out.println(type);
        System.out.println(cb);

    }
}

运行结果:

test.B<java.lang.String, java.lang.Integer>
class test.B

可以看出,Type可以表示出泛型的类型,而Class不能。

 

 另外,如果想要获取泛型类型的数组,可以将Type转化为它的子接口ParameterizedType,通过getActualTypeArguments() 获取:

Type[] paramList=((ParameterizedType)type).getActualTypeArguments();
System.out.println(paramList[0]+"  "+paramList[1]);

运行结果:

class java.lang.String  class java.lang.Integer

 

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值