美文网首页
Class常用反射代码

Class常用反射代码

作者: AC编程 | 来源:发表于2022-07-21 10:44 被阅读0次

一、代码一


import com.alanchen.PersonServiceImpl;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Client {

    public static void main(String[] args) {
        Class<PersonServiceImpl> serviceClass = PersonServiceImpl.class;

        //类名:不包括包名。simpleName=PersonServiceImpl
        String simpleName = serviceClass.getSimpleName();

        //全路径名称:包括包名。name=com.alanchen.PersonServiceImpl
        String name = serviceClass.getName();

        //该类实现的接口的名字。interfaceName=IPersonService
        String interfaceName = serviceClass.getInterfaces()[0].getSimpleName();

        //返回public属性。fieldStr=sex
        String fieldStr = "";
        for (Field item : serviceClass.getFields()) {
            fieldStr += item.getName() + ";";
        }

        //返回所有属性,包括private修饰的属性。declaredFieldStr=personName;age;sex;
        String declaredFieldStr = "";
        for (Field item : serviceClass.getDeclaredFields()) {
            declaredFieldStr += item.getName() + ";";

            //设置强制访问(包括private)
            item.setAccessible(true);
        }

        //返回public方法,包括父类Object中public的方法。
        //methodStr=personSay;wait;wait;wait;equals;toString;hashCode;getClass;notify;notifyAll;
        String methodStr = "";
        for (Method item : serviceClass.getMethods()) {
            methodStr += item.getName() + ";";
        }

        //返回该类中的所有方法,包括private方法,不包括父类Object中的方法。
        //declaredMethodStr=personSay;personWork;
        String declaredMethodStr = "";
        for (Method item : serviceClass.getDeclaredMethods()) {
            declaredMethodStr += item.getName() + ";";
        }

        System.out.println("simpleName=" + simpleName);

        System.out.println("name=" + name);

        System.out.println("interfaceName=" + interfaceName);

        System.out.println("fieldStr=" + fieldStr);

        System.out.println("declaredFieldStr=" + declaredFieldStr);

        System.out.println("methodStr=" + methodStr);

        System.out.println("declaredMethodStr=" + declaredMethodStr);
    }
}

相关文章

  • Class常用反射代码

    一、代码一

  • iOS反射机制

    概念 获取Class对象 常用判断方法 反射方法

  • Java Field 的使用

    java在反射时候经常用到了 Field 类。 首先,用到了一个bean类,源代码如下: public class...

  • 新鲜出炉,深入讲解java反射的底层原理,这篇算讲的不错了!

    反射 反射 Java代码和Java文件 Java文件和.class字节码文件 class字节码文件在内存中的位置 ...

  • Java反射详细介绍

    反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介...

  • Java反射基础

    使用反射获取类的信息 反射获取类的信息是通过Class类获取的,常用方法: String getName() 获...

  • 反射

    Class类与Java反射 通过反射可访问的主要描述信息 访问构造方法 Constructor类的常用方法 Mod...

  • JVM中是如何实现反射的

    前言1: 反射常用的API介绍: 获取class对象 调用静态方法Class.forName来获取 调用对象的ge...

  • 反射

    常用方法 反射得到数组 java.lang.Class类的getGenericInterfaces()方法用于获取...

  • 反射之Class类

    Class类 Class类常用方法 通过代码简单解释 运行结果 那些类型有Class对象

网友评论

      本文标题:Class常用反射代码

      本文链接:https://www.haomeiwen.com/subject/lzjuirtx.html