EKT相关知识(Class类对象的方法补充)

    |    class类对象的方法补充     |

一.获得Class类的对象的四种方式:

1.getClass

2.  .class

3.   Class.forName()

4.   Class.ClassLoader.getSystem....

二.Class类的相关方法:

1.cast(Object obj)         将一个对象强制转换成此 Class 对象所表示的类或接口。

2 .getAnnotations()          返回此元素上存在的所有注释。

3.getCanonicalName()      返回 Java Language Specification 中所定义的底层类的规范化名称。

4.getClasses()          返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。

5.constructor相关方法:(1)boolean equals(Object obj)      将此 Constructor 对象与指定的对象进行比较

            (2)getName()     以字符串形式返回此构造方法的名称。

方法运用的代码展示:

注意事项:a.代码运行环境:jdk1.8.0_131                   b.编译工具:2018 Idea

源代码:

package com.liujie;

import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;

/*
 * Class中相关方法运用
 * */
public class zyTest {

    public static void main(String[] args) {
        //cast(Object obj)
        //          将一个对象强制转换成此 Class 对象所表示的类或接口。
        String a=new String("hello");
        Class clz=a.getClass();
        Object aa="fasfds";
        Object ob=clz.cast(aa);
        System.out.println(ob.getClass());

        //getAnnotations()
        //          返回此元素上存在的所有注释。
        Annotation[] arr=zyTest.class.getAnnotations();
        for (Annotation annotation : arr) {
            System.out.println(arr);
        }
        //getCanonicalName()
        //          返回 Java Language Specification 中所定义的底层类的规范化名称。
        String cname=clz.getCanonicalName();
        System.out.println("cname:"+cname);

        //getClasses()
        //          返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。
        Class[] clzss=clz.getClasses();
        for (Class aClass : clzss) {
            System.out.println(aClass);
        }

        //constructor相关方法
        Constructor constructor=null;
        try {
            constructor=String.class.getDeclaredConstructor(String.class);
            System.out.println("constructor:"+constructor);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
            //boolean equals(Object obj)
            //          将此 Constructor 对象与指定的对象进行比较。
        Boolean isequals=constructor.equals("String");
        System.out.println(isequals);
        //getName()
        //          以字符串形式返回此构造方法的名称。
        String ccname=constructor.getName();
        System.out.println(ccname);
    }
}

控制台结果:

总结:

   不积跬步无以至千里,不积小流无以成江海。不断的学习才能提高我们的认知境界,才能更恰当匹配好我们支配金钱的欲望

 


原文地址:https://www.cnblogs.com/xiaojieDeam/p/13555753.html