【面试】哪些类型对应有Class的对象?

45 篇文章 0 订阅

1. 类(Class Types)
  • 1.每个定义的类都有一个与之关联的 Class 对象。
  • 2.例如,如果你有一个名为 Person 的类,那么 Person.class 就会返回一个表示 Person 类的 Class 对象。
2. 接口(Interface Types)
  • 1.与类类似,每个定义的接口也有一个与之关联的 Class 对象。
  • 2.List.class 会返回一个表示 List 接口的 Class 对象。
3. 数组类型(Array Types)
  • 1.每种数组类型(无论其元素类型是什么)都有一个与之关联的 Class 对象。
  • 2.int[].class 或 String[][].class 都会返回表示特定数组类型的 Class 对象。
4. 基本类型(Primitive Types)
  • 1.虽然基本类型(如 int, double, char 等)在Java中不是对象,但它们也有自己的包装类(如 Integer, Double, Character 等),这些包装类有与之关联的 Class 对象。
  • 2.基本类型本身并没有直接的 Class 对象。然而,你可以通过调用包装类的 .TYPE 静态字段来获取与基本类型对应的 Class 对象,例如 Integer.TYPE。
5. 枚举类型(Enum Types)
  • 1.枚举类型也是类的一种特殊形式,因此它们也有自己的 Class 对象。
6. 注解类型(Annotation Types)
  • 1.注解类型也是接口的一种特殊形式,因此它们也有与之关联的 Class 对象。
7. 类型变量(Type Variables) 和 泛型类型(Generic Types)
  • 1.虽然类型变量和泛型类型在运行时会被擦除(type erasure),但它们在某些上下文中(如反射API)仍然有与之关联的 Class 对象或 Type 对象(后者是 Class 的超接口,用于表示更广泛的类型,包括泛型类型)。

虽然基本类型本身没有直接的 Class 对象,但你可以使用它们的包装类来获取与它们相关的 Class 对象,或者使用 .TYPE 字段(对于包装类提供的静态字段)来获取与基本类型对应的 Class 对象。

8.代码示例
package com.learning.classloader;

import java.lang.annotation.ElementType;

public class ClassType {
    public static void main(String[] args) {
        Class<Object> objectClass = Object.class;
        Class<Comparable> comparableClass = Comparable.class;
        Class<String> stringClass = String.class;
        Class<int[][]> arrayClass = int[][].class;
        Class<ElementType> elementTypeClass = ElementType.class;
        Class<Override> overrideClass = Override.class;
        Class<Integer> integerClass = int.class;
        Class<Void> voidClass = void.class;
        Class<Class> classClass = Class.class;

        int[] a = new int[10];
        int[][] b = new int[100][2];

        Class aClass1 = a.getClass();
        Class bClass1 = b.getClass();
        System.out.println(aClass1 == bClass1);

        int[] a1 = new int[10];
        int[] b1 = new int[100];

        Class aClass2 = a1.getClass();
        Class bClass2 = b1.getClass();
        System.out.println(aClass2 == bClass2);
    }
}
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值