首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java - 使用反射获取对静态类的引用

关于Java反射获取静态类的引用,可以使用以下方法:

代码语言:java
复制
import java.lang.reflect.Field;

public class ReflectStaticClass {
    public static void main(String[] args) throws Exception {
        Class<?> clazz = Class.forName("java.lang.Integer");
        Field field = clazz.getField("TYPE");
        Class<?> staticClass = (Class<?>) field.get(null);
        System.out.println("获取到的静态类为:" + staticClass);
    }
}

在这个例子中,我们使用了Java反射API来获取java.lang.Integer类中的静态类TYPE。通过Class.forName()方法获取到java.lang.Integer类的类对象,然后使用getField()方法获取到TYPE字段,最后使用field.get(null)获取到静态类的引用。

需要注意的是,在获取静态类的引用时,需要将field.get()方法的参数设置为null,因为静态字段属于类本身,而不是类的实例。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java通过反射获取调用方法

Java通过反射获取调用方法 示例 ReflectUtil.java 模块一 Gjc.java 模块二 UiUtil.java DialogManager.java 在不同模块之间,需要使用其他模块方法...,这个时候就需要用到反射了 示例 模块一操作模块二,即模块一调用模块二中方法 ReflectUtil.java /** * 反射工具 */ public class ReflectUtil...public class Gjc{ public static void init{ /** * 反射调用无参方法 */ //通过ReflectUtil.getClass拿到反射...*/ //需要传入参数 int x = 666; int y = 999; //通过ReflectUtil.getClass拿到反射 Class uiUtilClassTwo...", int.class, int.class, Activity.class); //获取私有方法,否则会找不到这个方法(也有人说是取消Java语言访问检查,目的是提升反射速度 这个我没有测过)

1.8K10

Java反射(完)加载和反射获取信息

三.加载 1.动态加载和静态加载 基本说明 反射机制是 java 实现动态语言关键,也就是通过反射实现动态加载 1.静态加载:编译时加载相关,如果没有则报错,依赖性太强 2.动态加载:运行时加载需要...2.包括:文件格式验证(是否以魔数 oxcafebabe 开头)、元数据验证、字节码验证和符号引用验证 3.可以考虑使用-Xverify:none 参数来关闭大部分验证措施,缩短虚拟机加载时间。..."B () 构造器被执行" //new B();//加载 System.out.println(B.num);//100 如果直接使用静态属性,也会导致加载...1.第一组:java.lang.Class 1.getName:获取名 2.getSimpleName:获取简单名 3.getFields:获取所有 publicf 修饰属性,包含本类以及父...(o); //4.使用反射操作name属性 Field name = stuClass.getDeclaredField("name"); //name进行暴破

50720

Java反射获取和对象信息全解析

反射可以解决在编译时无法预知对象和是属于那个,要根据程序运行时信息才能知道该对象和信息问题。 在两个人协作开发时,你只要知道对方名就可以进行初步开发了。...获取对象 Class.forName(String clazzName)静态方法 调用class属性,Person.class返回就是Personclass对象(推荐使用) 调用某个对象getClass...()方法 具体使用还是要根据实际来选择,第一种方式是比较自由,只要知道一个名就可以了,其不会做该类是否存在校验,第二种、第三种则会做校验 获取信息 获取构造器 Connstructor...Java8重复注解功能,需要使用该方法获取直接修饰该类指定类型多个Annotation 获取该类内部类 Class<?...class java.lang.String arg1 interface java.util.List java.util.List 反射生成对象 使用Class

2.3K20

Java反射:探索对象创建与信息获取

❤️ Java是一门强大而灵活编程语言,其中反射机制允许我们在运行时获取和操作信息。...这个过程由加载器(ClassLoader)来完成。 2.2 连接 在连接阶段,内存会为静态变量分配内存,并进行默认初始化。静态变量在加载时会被初始化。...2.3 初始化 在初始化阶段,静态变量会被赋予程序员指定初始值。在上面的例子中,name 被赋值为 “张无忌”,age 被赋值为 18。 3. 反射是什么?...反射Java一种机制,允许在运行时获取一个变量和方法信息,然后通过这些信息来创建对象、访问变量和调用方法。反射机制使我们可以在编译时未知情况下操作。 4....获取Class对象 在使用反射之前,我们首先需要获取一个Class对象。

15510

java-解决jar包反射获取不到

前言 在开发一个基础工具包给业务组小伙伴们使用时候,发现一个小问题,就是在反射时候在自己电脑上运行正常,但是打成jar包后,就class not fuond,有点奇怪。...场景复现 下面的目的是,找到这个指定包下所有我指定了注解进行加载,其实就是一个可以灵活装配、拆卸策略模式。这样业务可以通过指定注解来选择是否成为业务一部分。...; /** * 加载工厂 * * @author liukai * @since 2015/9/9. */ public class GeneratorFactory { public...jar,所以加载时,要考虑到jar包路径,以下这个demo,实际可以通过获取运行路径变量替换写死路径。...static Map creators = new HashMap(); static { // 基于 jar 包反射

40820

Java 反射理解(一)-- Class 使用

概念 这里阐述几个基本概念: 在面向对象世界里,万事万物皆对象。(在 Java 语言中,静态成员、普通数据类型除外) 也是对象,java.lang.Class 实例对象。...类型是什么? 类型可以简单理解为类型。在万物皆对象 Java 中,我们定义每个都是 java.lang.Class 一个对象,该对象就是该类类型,即 Class 对象。...c3 表示了 Foo 类型(class type),一个只可能是Class一个实例对象,即 c1 = c2 = c3,三次得到Class对象都是同一个 /.../第一种表示方式 ---> 实际在告诉我们任何一个都有一个隐含静态成员变量class Class c1 = Foo.class; //第二中表达方式...---> 已经知道该类对象通过getClass方法获取 Class c2 = foo1.getClass(); System.out.println

60020

Java反射机制获取运行时完整结构

通过反射获取运行时完整结构 Field、Method、Constructor、Superclass、Interface、Annotation Ø 实现全部接口 Ø 所继承 Ø 全部构造器...Ø 全部方法 Ø 全部Field 通过反射获取运行时完整结构 使用反射可以取得: 1.实现全部接口 Ø public Class<?...Annotation相关 Ø get Annotation(Class annotationClass) Ø getDeclaredAnnotations() 7.泛型相关 获取泛型类型:Type...getGenericSuperclass() 泛型类型:ParameterizedType 获取实际泛型类型参数数组:getActualTypeArguments() 8.所在包 Package...2.一定要熟悉java.lang.reflect包作用,反射机制。 3.如何取得属性、方法、构造器名称,修饰符等。

59430

java通过反射获取加了某个注解所有的

一、前言 有时候我们会碰到这样情况: 有n个场景,每个场景都有自己逻辑,即n个处理逻辑, 这时候我们就需要通过某个参数值代表这n个场景,然后去加载每个场景不同bean对象,即不同,这些中都有一个同名方法...,Heika.class,这三个里面有一个同样方法,名字叫:checkPermissions()方法,三个上都加了一个自定义注解@MemberTypeDefinition 二、代码demo参考 1...private static final long serialVersionUID = 7510262928468530569L; private String response; } 4、反射核心代码...MemberTypeDefinition 注解源表bean loadSourceDefinition(); // 获取SpecialPeople.class里面所有的表名...package下面,我这里仅仅是让大家可以直观看到有这些

8200

【Kotlin】:: 双冒号操作符详解 ( 获取引用 | 获取对象类型引用 | 获取函数引用 | 获取属性引用 | Java Class 与 Kotlin 中 KClass )

文章目录 一、:: 双冒号操作符 1、获取引用 引用类型 KClass 说明 2、获取对象类型引用 3、获取函数引用 4、获取属性引用 二、 java.lang.Class 与 kotlin.reflect.KClass...反射操作时才会用到 ; 相当于 Java 反射 字节码类型 Class 类型 , 对象类型 Class 类型 , 对象函数 Method 类型 , 对象属性字段 Field 类型 ;...1、获取引用 在 Kotlin 中 , 使用 :: 双冒号操作符 获取 类型对象引用 代码格式为 : Java或Kotlin名::class 获取 Kotlin 类型对象 类型...} 2、获取对象类型引用 在 Kotlin 中 , 使用 :: 双冒号操作符 获取 对象类型引用 代码格式为 : Java或Kotlin实例对象::class 获取 对象类型引用 类型 为 KClass...属性引用 , 相当于 Java 反射 Field 对象 , 调用 KMutableProperty1#get 函数 传入 Student 实例对象 , 可以获取该实例对象 name 属性 ;

4.4K10

反射-Class使用

JAVA-Reflect 专题 ①Class使用 ②方法反射 ③成员变量反射 ④构造函数反射java加载机制 Ⅰ在面向对象世界里,万事万物皆为对象 是对象,java.lang.Class...实例对象 ⅡClass实例对象有三种表示方式 //第一种表达方式(已知名) //第二种表达方式(已知对象) //第三种表达方式(通过全称) package com.tsh.reflect;...ClassNotFoundException e) { e.printStackTrace(); } //官网解释:c1和c2表示了Foo类型...(class type) //一个只可能是Class一个对象,因此下面的输出true System.out.println(c1==c2);...//可以通过类型创建该类实例对象 try { //该类需要有无参数构造方法 Foo foo2=(Foo) c1.newInstance

29120

第5章 | 引用使用引用引用安全

,你会发现外层 for 循环获取了哈希表所有权并完全消耗掉了,并且内部 for 循环每个向量执行了相同操作。...在以前版本中,外部 for 循环获取了此 HashMap 所有权并消耗掉了它,但在新版本中,它收到了 HashMap 共享引用。...笔记 Rust这里引用和JavaScript中差距还是蛮大,JavaScript中变量操作感觉有点随意 5.2 使用引用 前面的示例展示了引用一个非常典型用途:允许函数在不获取所有权情况下访问或操纵某个结构...(*m == 64); // 来看看y新值 也许你还记得,当我们修复 show 函数以通过引用而非值来获取艺术家表格时,并未使用过 * 运算符。这是为什么呢?...我们只能用其他静态变量引用来调用 f,但这是唯一一种肯定不会让 STASH 悬空方式。

5110

揭秘Java反射:如何轻松获取属性及父类属性

相信很多小伙伴在学习Java过程中,都曾经遇到过需要动态地获取属性和方法场景。而Java反射正是解决这个问题利器。那么,如何使用Java反射获取属性及父属性呢?...一、Java反射简介要了解一下Java反射是什么。简单来说,Java反射就是运行时能够获取信息,并且可以操作或对象一种机制。...通过Java反射,可以在运行时获取构造方法、成员变量、成员方法等信息,甚至可以创建对象、调用方法等。二、Java反射获取属性接下来,重点讲解一下如何使用Java反射获取属性。...需要获取Class对象,然后通过这个Class对象就可以获取所有属性了。...属性名:age属性类型:int可以看到,成功地获取到了Person属性以及父属性。

12110

Java反射机制前言:Java反射使用:总结:

前言: JAVA反射机制是在运行状态中,对于任意一个,都能够知道这个所有属性和方法;对于任意一个对象,都能够调用它任意方法和属性;这种动态获取信息以及动态调用对象方法功能称为java语言反射机制...Java反射使用: 有如下student: public class Student { private int age; private String name;...; } } 现在通过反射获取student信息: 一、获取class对象 获取class对象有三种方式,如下: 1、方式一: Class clazz =Class.forName("...二、获取信息 得到了Class对象后,就可以通过Class对象获取信息,部分方法如下: 1、获取属性: Field[] fs = clazz.getDeclaredFields();//获取所有属性...总结: Java反射机制应用非常广泛,像spring、hibernate等框架底层都用到了反射,理解反射机制,可以帮助我们更好理解这些框架原理。

54340
领券