栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是类描述符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是类描述符?

是的,

Class
对象是某个“类”的类描述符。

从API中:

此类的实例表示正在运行的Java应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组还属于一个反映为Class对象的类,该类对象由元素类型和维数相同的所有数组共享。原始Java类型(布尔型,字节型,字符型,短型,整型,长型,浮点型和双精度型)以及关键字void也都表示为

Class
对象。

这是一个简单使用

Class
方法来示例性地描述类型的示例:

static void describe(Class<?> clazz, String pad, String leadin) {    if (clazz == null) return;    String type =        clazz.isInterface() ? "interface" :        clazz.isArray() ? "array" :        clazz.isPrimitive() ? "primitive" :        clazz.isEnum() ? "enum" :        "class";    System.out.printf("%s%s%s %s ( %s )%n",        pad, leadin, type, clazz.getSimpleName(), clazz.getName());    for (Class<?> interfaze : clazz.getInterfaces()) {        describe(interfaze, pad + "   ", "implements ");    }    describe(clazz.getComponentType(), pad + "   ", "elements are ");    describe(clazz.getSuperclass(), pad + "   ", "extends ");}static void describe(Class<?> clazz) {    describe(clazz, "", "");    System.out.println();}public static void main(String[] args) {    describe(boolean[][].class);    describe(java.math.RoundingMode.class);    describe(java.util.ArrayList.class);    describe(void.class);}

上面的代码片段产生以下输出:

array boolean[][] ( [[Z )   implements interface Cloneable ( java.lang.Cloneable )   implements interface Serializable ( java.io.Serializable )   elements are array boolean[] ( [Z )      implements interface Cloneable ( java.lang.Cloneable )      implements interface Serializable ( java.io.Serializable )      elements are primitive boolean ( boolean )      extends class Object ( java.lang.Object )   extends class Object ( java.lang.Object )enum RoundingMode ( java.math.RoundingMode )   extends class Enum ( java.lang.Enum )      implements interface Comparable ( java.lang.Comparable )      implements interface Serializable ( java.io.Serializable )      extends class Object ( java.lang.Object )class ArrayList ( java.util.ArrayList )   implements interface List ( java.util.List )      implements interface Collection ( java.util.Collection )         implements interface Iterable ( java.lang.Iterable )   implements interface RandomAccess ( java.util.RandomAccess )   implements interface Cloneable ( java.lang.Cloneable )   implements interface Serializable ( java.io.Serializable )   extends class AbstractList ( java.util.AbstractList )      implements interface List ( java.util.List )         implements interface Collection ( java.util.Collection ) implements interface Iterable ( java.lang.Iterable )      extends class AbstractCollection ( java.util.AbstractCollection )         implements interface Collection ( java.util.Collection ) implements interface Iterable ( java.lang.Iterable )         extends class Object ( java.lang.Object )primitive void ( void )

API链接

  • Class.getName()
    • 解释数组和基元的“ funky”名称

参考文献

  • Java教程/反射API
    • 另请参阅: 有效的Java 2nd Edition,第53项:首选接口而不是反射
  • JLS 15.8.2类文字


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号