zoukankan      html  css  js  c++  java
  • Class类

    Java中每定义一个java class实体都会产生一个class对象。当我们编写一个类编译完成以后,在生成的.class文件中就会产生一个class对象,这个class对象用于表示这个类的类型信息。Class中没有公共的构造器,也就是说class对象不能被实例化。Class类包含的方法如下:

    1、toString()

    public String toString() {

            return (isInterface() ? "interface" : (isPrimitive() ? "" : "class")) + getName();

    }

    toString方法可以将对象转换为字符串,toString()首先会判断class类型是否是接口类型,也就是说普通类和接口都能用class对象来表示,然后再判断是否是基本数据类型,这里判断的都是基本的数据类型和包装类,还有void类型。所有的类型如下:

    • java.lang.Boolean:代表boolean数据类型的包装类
    • java.lang.Character:代表char数据类型的包装类
    • java.lang.Byte:代表byte数据类型的包装类
    • java.lang.Short:代表short数据类型的包装类
    • java.lang.Integer:代表int数据类型的包装类
    • java.lang.Long:代表long数据类型的包装类
    • java.lang.Float:代表float数据类型的包装类
    • java.lang.Double:代表double数据类型的包装类
    • java.lang.Void:代表void数据类型的包装类

    然后是getName()方法,这个方法返回类的全限定名称:

    • 如果是引用类型,比如String.class.getName()—》java.lang.String
    • 如果是基本数据类型,比如byte.class.getName()—》byte
    • 如果是数组类型,比如new Object[3].getClass.getName()—》java.lang.Object

    2、toGenericString()

    这个方法会返回类的全限定名称,而且包括类的修饰符合类型参数信息。

    3、forName()

    根据类名获得一个Class对象的引用,这个方法会使类对象进行初始化。

    例如 Class t = Class.forName("java.lang.Thread");能够初始化一个Thread线程对象。在java中,一共有三种获取实例的方式:

    • Class.forName("java.lang.Thread")
    • Thread.Class
    • Thread.getClass()

    4、newInstance()

    创建一个类的实例,代表着这个类的对象。forName()方法对类进行初始化,newInstance方法对类进行实例化。

    5、getClassLoader()

    获取类加载器对象。

    6、getTypeParameters()

    按照声明的顺序获取对象的参数类型信息。

    7、getPackage()

    返回类的包

    8、getInterfaces()

    获得当前类实现的类或接口,可能是多个,所以返回的是Class数组。

    9、Cast

    把对象转换成代表类或是接口的对象

    10、asSubclass(Class clazz)

    把传递的类的对象转换成代表其子类的对象

    11、getClasses()

    返回一个数组,数组中包含该类中所有公共类和接口类的对象

    12、getDeclaredClasses()

    返回一个数组,数组中包含该类中所有类和接口类的对象

    13、getSimpleName()

    获得类的名字

    14、getFields()

    获得所有公有的属性对象

    15、getField(String name)

    获得某个公有的属性对象

    16、getDeclaredField(String name)

    获得某个属性对象

    17、getDeclaredFields()

    获得所有属性对象

    18、getAnnotation(Class annotationClass)

    返回该类中与参数类型匹配的公有注解对象

    19、getAnnotations()

    返回该类所有的公有注解对象

    20、getDeclaredAnnotation(Class annotationClass)

    返回该类中与参数类型匹配的所有注解对象

    21、getDeclaredAnnotations()

    返回该类所有的注解对象

    22、getConstructor(Class...<?> parameterTypes)

    获得该类中与参数类型匹配的公有构造方法

    23、getConstructors)

    获得该类的所有公有构造方法

    24、getDeclaredConstructor(Class...<?>parameterTypes)

    获得该类中与参数类型匹配的构造方法

    25、getDeclaredConstructors()

    获得该类所有构造方法

    26、getMethod(String name,Class...<?>parameterTypes)

    获得该类某个公有的方法

    27、getMethods()

    获得该类所有公有的方法

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    屏蔽 优酷广告
    First Adventures in Google Closure -摘自网络
    Closure Compiler(封闭编辑器), Closure Inspector, Closure Templates, 封闭图书馆(Closure Library) Google- 摘自网络
    据说几年前,微信之父张小龙有一次入京到龙泉寺散心,心中关于微信的产品困惑久久不得解。无聊中,张小龙与寺中扫地僧攀谈起来,发现对方居然懂得技术和产品,深入聊天之后,张小龙震惊于对方的才学与见识,虚心请教,之后闭关七天回到深圳,微信终于大成。
    一个PHP书单 -摘自网络
    关于protel 99se 汉化后某些菜单消失的解决方法
    Protel画完原理图检查的时候出现了这些错误 #1 Error Multiple Net Identifiers
    protel99 se中出现许多Backup of 文件,修改过保存时,总会出现备份文件,怎么才能取消这一设置?
    protel 99se 加载库文件 files not recognised 解决办法-转
    Hosts 文件的作用
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14407704.html
Copyright © 2011-2022 走看看