Class类对象的方法补充

本文详细介绍了如何获取Class类对象的四种方式,并通过实例展示了Class类的相关方法,如cast()、getAnnotations()、getCanonicalName()、getClasses()以及Constructor的相关方法,包括equals()和getName()。通过对Java反射机制的深入理解,帮助开发者更好地掌握类对象的操作和使用。
摘要由CSDN通过智能技术生成

Class类对象的方法补充

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

1.getClass

  1. .class

  2. Class.forName()

  3. 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);
    }
}

控制台结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值