Java之反射机制三:获取类的方法

一.实体类BigDog.java

package reflex;public class BigDog extends Dog {    private Integer age;

    public String name;

    public BigDog(){}

    private void getDog(){}

    private BigDog(Integer age, String name) {        this.age = age;        this.name = name;    }

    public String getName() {        return name;    }

    public void setName(String name) {        this.name = name;    }

    public Integer getAge() {        return age;    }

    public void setAge(Integer age) {        this.age = age;    }

    @Override    public String toString() {        return "BigDog{" +                "age=" + age +                ‘}‘;    }}

二.获取类的方法

1.获取类及其父类的公有方法

Class<BigDog> dogClass = BigDog.class;
Method[] methods = dogClass.getMethods();
for (Method method : methods) {
       System.out.println(method);
}

运行结果:

2.获取该类的所有方法

Method[] declaredMethods = dogClass.getDeclaredMethods();
 for (Method declaredMethod : declaredMethods) {
        System.out.println(declaredMethod);
 }

运行结果:

三.获取类的构造方法

        Class<BigDog> dogClass = BigDog.class;
        //获取该类的公有构造方法
        Constructor<?>[] constructors = dogClass.getConstructors();
        for (Constructor<?> constructor : constructors) {
            System.out.println(constructor);
        }
        //获取该类所有的构造方法(包括有参无参,私有共有)
        Constructor<?>[] declaredConstructors = dogClass.getDeclaredConstructors();
        for (Constructor<?> declaredConstructor : declaredConstructors) {
            System.out.println(declaredConstructor);
        }
//获取该类公有的有参构造方法Constructor<BigDog> constructor = dogClass.getConstructor(Integer.class);System.out.println(constructor);
//获取该类私有的有参构造方法
Constructor<BigDog> declaredConstructor = dogClass.getDeclaredConstructor(Integer.class, String.class);
System.out.println(declaredConstructor);

运行结果:

四.获取该类指定的方法

1.获取类指定的公有方法

//获取ArrayList的add方法
Class<ArrayList> clazz = ArrayList.class;
Method method = clazz.getMethod("add", int.class, Object.class);
System.out.println(method);

运行结果:

2.获取类指定的私有方法

//获取类的指定私有方法
Class<Object> clazz = Object.class;
Method method = clazz.getDeclaredMethod("registerNatives");
System.out.println(method);

原文地址:https://www.cnblogs.com/wwjj4811/p/12539804.html

时间: 2024-10-11 06:50:19

Java之反射机制三:获取类的方法的相关文章

利用反射机制,获取类的字段、方法、并实现简单调用

这篇文章是为之后要介绍Android的ICO框架做预备的,所以,如果想最近学习Android的ICO框架的同学,可以稍微看一下. 首先,简单介绍一下Java里面的反射. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 不知道这样的一段解释,你能否看懂.如果更简单的说,反射就是能够根据你给出类名实例化出一个实实在在的对象.所以,对象的实例

Java反射机制能够获取的信息,与应用

一.什么是Java反射机制? [1]反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法: [2]对于任意一个对象,都能够调用它的任意一个属性和方法: 像这种动态获取类的信息以及动态调用对象的方法的骚操作称为java语言的反射机制. 二.Java反射机制能够获取及操作哪些信息? [1]获取类的包名 + 类名 1 package com.zyy.test.reflect; 2 3 public class TestReflect { 4 5 public static void

Java通过反射机制修改类中的私有属性的值

首先创建一个类包含一个私有属性: class PrivateField{ private String username = "Jason"; } 通过反射机制修改username的值: //创建一个类的对象 PrivateField privateField = new PrivateField(); //获取对象的Class Class<?> classType = privateField.getClass(); //获取指定名字的私有域 Field field =

java反射机制取出model类的所有变量,以及value

原文:java反射机制取出model类的所有变量,以及value 源代码下载地址:http://www.zuidaima.com/share/1550463649270784.htm 工作上遇到个问题,顺便解决了,希望对大家有帮助 package com.zuidaima.util; public static void main(String[] args) throws ClassNotFoundException, IllegalArgumentException, IllegalAcce

Java的反射机制简述

反射机制是Java语言中一个非常重要的特性,它允许程序在运行时进行自我检查,同时也允许内部的成员进行操作.虽然这个特性在实际开发中使用的不多,但是像Pascal.C和C++等语言根本没有提供这样的特性.由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制也会严重影响系统的性能. 具体而言,反射机制提供的功能主要有: 1.得到一个对象所属的类: 2.获取一个类的所有成员变量和方法: 3.在运行时创建对象: 4.在运行时调用对象的方法. 其实,反射机制非常重要

Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别(转)

一.Java的反射机制   每个Java程序执行前都必须经过编译.加载.连接.和初始化这几个阶段,后三个阶段如下图:  其中 i.加载是指将编译后的java类文件(也就是.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个Java.lang.Class对象,用来封装类在方法区的数据结构.即加载后最终得到的是Class对象,并且更加值得注意的是:该Java.lang.Class对象是单实例的,无论这个类创建了多少个对象,他的Class对象时唯一的!!!!.

Java之反射机制

1. 概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 2. 反射机制初探 首先我们做一下准备工作: package com.myreflex; public class Demo { private String str1; public String str2; private void fun1(){ System.out.p

java的反射机制原理

一  反射机制的概念: 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法.这种动态获取信息,以及动态调用对象方法的功能叫java语言的反射机制. 二  反射机制的应用: 生成动态代理,面向切片编程(在调用方法的前后各加栈帧). 三  反射机制的原理: 1  首先明确的概念: 一切皆对象----类也是对象. 2  然后知道类中的内容 :modifier  constructor  field  method. 3  其次明白加载: 当An

Java中反射机制详解

序言 在学习java基础时,由于学的不扎实,讲的实用性不强,就觉得没用,很多重要的知识就那样一笔带过了,像这个马上要讲的反射机制一样,当时学的时候就忽略了,到后来学习的知识中,很多东西动不动就用反射,所以回过头来把这个给重新补一下,自己欠下的债,迟早是要还的. ---WH 一.什么是反射? 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的