`

反射基础之一

 
阅读更多

public class Students {
private String name;
private String password;

public Students() {
}

public Students(String name, String password) {
this.name = name;
this.password = password;

}

public void Students2(String password) {
System.out.println("sssssssssss" + password);
}

public String getName() {
return name;
}

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

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}



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

public class Test1 {
/*
* Java 反射基础
*/
public static void main(String[] args) throws Exception {

// 获取Class类对象的三种基本方式
//1:通过类名获得类对象;这会强行加载类到内存里,后两种不加载
Class clazz = Class.forName("Students");
System.out.println(clazz.getName());
//2:通过对象获得类对象 Class
Students s = new Students();
Class clazz1 = s.getClass();
System.out.println(clazz1.getName());
//3:类对象.getClass()
Class clazz2 = Students.class;
System.out.println(clazz2.getName());
//注:第三种方式是最常用最灵活的方式。第三种方式又叫强制类加载。

//方法 参数类型为 String.class 的方法
Class[] parameterTypes = {String.class};
Method method = clazz.getMethod("Students2", parameterTypes);
System.out.println(method.getName());

// 得到所有的构造方法
Constructor[] conn = clazz.getConstructors();
for (int i = 0; i < conn.length; i++) {
System.out.println(conn[i]);
}
// 得到指定类型的构造方法
Class[] cs1 = { String.class, String.class };
Constructor con = clazz.getConstructor(cs1);
System.out.println(conn.getClass().getName());
                  // 私有方法设置为暴力访问
method.setAccessible(true);

// 得到所有的参数类型
for (int i = 0; i < parameterTypes.length; i++) {
System.out.println(parameterTypes[i]);
}
// 得到所有属性
Field[] field = clazz.getDeclaredFields();
for (int i = 0; i < field.length; i++) {
System.out.println(field[i]);
}
// 调用目标类的方法
Object[] args1 = { "1234" };
method.invoke(clazz.newInstance(), args1);
System.out.println();
}

}
分享到:
评论

相关推荐

    java基础之一反射笔记

    java基础之一反射笔记

    java基础之反射讲解

    ### Java基础之反射讲解 #### 一、反射概念与应用场景 **反射**是Java语言提供的一种能在运行时分析和操作类及其成员的强大功能。通过反射,我们可以在程序运行期间动态地获取类的信息,并且能够创建和操作这些类...

    java 基础 之反射

    2. **插件系统**:反射使得在运行时加载和调用未知类的功能成为可能,这是许多插件框架的基础。 3. **框架开发**:Spring框架大量使用反射来实现依赖注入和AOP(面向切面编程)。 4. **元数据操作**:例如,JPA和...

    VR材质反射基础.pdf

    在虚拟现实(VR)和3D渲染领域,材质的反射是决定场景真实感的重要因素之一。本教程将详细介绍如何在VR环境中设置和调整材质的反射属性,以创建逼真的视觉效果。 首先,我们需要设置渲染参数。在VR渲染中,输出...

    实例讲解Java基础之反射

    Java反射是Java编程语言中的一个重要特性,它允许运行时的Java程序访问并操作类、接口、字段和方法等对象,即使这些对象在编译时并未被明确引用。反射提供了动态类型的能力,使得代码可以在运行时检查类的信息,创建...

    C++反射机制实现

    泛型编程也能够作为实现反射机制的手段之一,它允许在编译时对类型进行操作,提高了类型安全和性能。 文档中提到的“简单C++反射机制(SCR)”是一个基于宏定义、模板和泛型机制的实现方案。通过这种方式,C++程序员...

    java基础,多线程,反射

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。本文将深入探讨Java中的基础概念,包括多线程、反射以及泛型,这些都是Java编程中至关重要的知识点。 首先,我们来讨论Java多线程。多线程...

    一种多层膜反射镜反射率的测量方法

    多层膜反射镜的反射率测量是该领域研究的关键技术之一,通过精确测量反射率,可以评估多层膜的质量以及其在实际应用中的性能表现。 本文提到的测量方法主要关注X射线激光的应用,X射线激光由于具有波长短、单光子...

    EXample.rar_MATLAB光反射_ideayju_光反射_光的反射

    首先,光的反射定律是光学的基础原理之一,它规定了光线在遇到反射面时遵循的规则。当一束光线以入射角θi射向反射面时,它将按照相同的角度θr反射回去,其中入射角等于反射角(θi = θr)。这一规律在各种光学...

    Java基础入门四泛型反射注解.pdf

    Java作为云计算环境下编写应用和服务的主要语言之一,其泛型、反射和注解等高级特性为构建云计算平台上的应用提供了便利,从而满足不断变化的业务需求。 学习Java编程,特别是泛型、反射和注解这些高级特性,对于想...

    Java基础篇之注解和反射

    Java基础注解和反射入门思维导图 毕竟在SpringBoot以及之后使用的基本全是注解很少用配置文件 反射是必须要会的

    Java基础 反射篇.md

    ### 反射基础篇文末总结 反射是Java中一个非常强大的特性,它提供了运行时操作类的能力。虽然反射可以带来很多便利,但也需要注意其潜在的问题,合理地使用反射,可以使我们的代码更加灵活和高效。在实际开发中,...

    光的反射(基础)知识讲解.doc

    相比之下,漫反射发生在粗糙表面,如纸张或墙壁,光线会向各个方向散射。虽然两种反射遵循相同的反射定律,但漫反射使得我们能在不同角度看到物体,这是日常生活中常见的反射形式。 在解题过程中,我们需要运用反射...

    条件反射flash含源文件

    条件反射是俄国生理学家伊万·巴甫洛夫的理论基础之一,它描述了在特定刺激与反应之间建立的固定联系。在生物学中,无条件反射是动物或人类对某些刺激的本能反应,例如食物入口时唾液分泌。而条件反射则是通过学习...

    Java基础之-反射(非常重要)

    Java反射是Java编程语言中的一个强大工具,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在深入理解Java反射之前,我们首先要明白面向对象的基本概念,包括类、对象、方法以及...

    .net理解反射的一个很好的Demo

    总结,反射是.NET框架的核心特性之一,它为程序的灵活性和可扩展性提供了基础。通过学习和使用反射,开发者可以更好地理解和控制程序的运行时行为,实现动态性和自适应性。这个“理解反射的demo”压缩包很可能包含了...

    【很好】信号完整性基础之反射.doc

    总的来说,理解信号完整性的基础,特别是反射现象,对于设计高效、可靠的高速数字系统至关重要。通过精确计算反射系数和传输系数,以及适当地使用匹配电阻,我们可以有效控制反射,优化信号质量,避免潜在的设计问题...

    三个镜面反射shader

    其中,镜面反射是实现物体表面真实感的重要技术之一,它模拟了光线在光滑表面上的行为。下面将详细介绍与“三个镜面反射shader”相关的知识点。 ### 一、什么是镜面反射 镜面反射是指当光线照射到一个非常平滑的...

    Java基础之注解+反射.docx

    反射(Reflection)则是Java提供的一种能够在运行时检查类、接口、字段和方法等程序元素的能力。 1. **Java注解**: - 注解可以应用于类、方法、变量、参数和包等。它们通常以`@`符号开头,如`@Override`,`@...

    Java反射_Spring IOC

    Spring框架的依赖注入(Dependency Injection, DI)是其核心特性之一,而Spring的IOC(Inversion of Control,控制反转)是DI的一种实现方式。在传统的编程模式中,对象通常负责自己创建所需的依赖项。而在Spring中...

Global site tag (gtag.js) - Google Analytics