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

获取其中一个超类中受保护字段的FieldDescription

,可以通过反射机制来实现。反射是指在运行时动态地获取类的信息并操作类的成员,包括字段、方法、构造函数等。

首先,需要使用Java的反射API来获取超类的Class对象。假设超类的名称为SuperClass,可以使用以下代码获取该类的Class对象:

代码语言:txt
复制
Class<?> superClass = SubClass.class.getSuperclass();

接下来,可以使用Class对象的getDeclaredFields()方法获取超类中所有的字段,包括受保护字段。然后,遍历这些字段,找到目标字段的Field对象。假设目标字段的名称为"protectedField",可以使用以下代码实现:

代码语言:txt
复制
Field targetField = null;
Field[] fields = superClass.getDeclaredFields();
for (Field field : fields) {
    if (field.getName().equals("protectedField")) {
        targetField = field;
        break;
    }
}

在上述代码中,通过调用Field对象的getName()方法获取字段的名称,并与目标字段名称进行比较。如果找到了目标字段,则将其赋值给targetField变量。

最后,可以通过Field对象的toString()方法获取字段的描述信息。例如:

代码语言:txt
复制
String fieldDescription = targetField.toString();

需要注意的是,由于字段是受保护的,可能无法直接访问该字段的值。如果需要访问字段的值,可以通过Field对象的setAccessible(true)方法来取消对字段的访问限制,然后使用get()方法获取字段的值。

以上是获取超类中受保护字段的FieldDescription的一种实现方式。在实际应用中,可以根据具体的需求和代码结构进行调整和优化。

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

相关·内容

一、K3 WISE 开发插件《K3 WISE常用数据表整理》

一、K3 WISE 开发插件《K3 WISE常用数据表整理》 在后台数据库ICClassType表中,字段FID的是老单,FID>0的是新单。...FTableID 步骤二:再根据FTableID,从t_fielddescription表中查业务单据的字段名、字段中文描述 这两个表可以查询金蝶的所有业务单据,用法如下: SELECT * FROM...%' --字段表 SELECT * FROM T_FieldDescription WHERE FTableID=17 --字段表 SELECT * FROM ICClassType WHERE...类似采购订单下推到到货单据,字段的对应关系就在这里。比如我们可以把采购订单加的自定义字段批号,关系到入库单的批号,就这里改改吧!...SELECT * FROM ICClassLinkEntry --钩稽关系中控制字段、关闭字段、控件字段信息表 SELECT * FROM ICClassLinkCommit --单据转换流程在

2.4K70
  • Java复习3-类的继承

    编译器会一一列举所有C类中名为f的方法和其超类中访问属性为public且名为f的方法(超类的私有方法不可访问)。 至此,编译器已获得所有可能被调用的候选方法。...因此,虚拟机预先为每个类创建了一个方法表(method table),其中列出了所有方法的签名和实际调用的方法。这样一来,在真正调用方法的时候,虚拟机仅查找这个表就行了。...Class类中的getFields、getMethods和getConstructors方法将分别返回类提供的public字段、方法和构造器组,其中包括超类的共有成员。...Class类的getDeclareFields、getDeclareMethods和getDeclareConstructors方法将分别返回类中声明的全部字段、方法和构造器,其中包括私有和受保护的成员...将公共操作和字段放在超类 不要使用受保护的字段,非必须要,不要使用protected,而推荐用private 使用继承实现is-a的关系,不是这样关系的类不应该使用继承 除非所有继承的方法都有意义,否则不要使用继承

    63820

    Java 反射

    反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制...在了解反射机制之前我们首先了解一下Java类加载的过程 加载 加载是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象...public的成员变量和方法时,将包含从超类中继承到的成员变量和方法;而通过方法getDeclaredFields()和getDeclaredMethods()只能获得在本类中定义的所有成员变量和方法...} // 受保护的构造方法 protected Student(boolean n){ System.out.println("受保护的构造方法 n = " + n);...******************** public java.lang.String com.company.Student.name ************获取所有的字段(包括私有、受保护、

    81420

    为什么日志要private static final

    为什么java.util...Logger类甚至不提供接受Class对象的方法呢?为什么开发java.util.logging包的人将他们的API建立在Log4j上,却忽略了其中一些最有用的部分?...以这种方式声明的日志记录器的最大问题是,您现在从超类中获得的所有日志记录与子类的日志记录混合在一起,并且在日志输出中,除非您查看源代码,否则无法识别哪些消息来自哪个类。...如果超类有很多您不想看到的日志记录,这是非常烦人的,因为您不能过滤掉它。 另一个问题是,您以不同的方式设置日志级别的能力消失了,例如,如果子类驻留在与超类不同的包中。...在这种情况下,如果试图从超类中筛选出日志记录,则不能,因为实际的运行时类用于获取日志记录器。 最后,拥有一个受保护的记录器似乎违反了基本的面向对象原则。...为什么子类应该从横切关注点的超类了解内部实现细节?无论如何,虽然这是一个愚蠢的小咆哮,但是当您扩展一个声明像这样的受保护日志记录器的超类时,它确实很烦人。

    2.2K20

    大牛:你真的懂反射吗?

    反射是框架设计的灵魂 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为...要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在于Class对象。...(String className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。..."公有字段" * 2).Field[] getDeclaredFields():获取所有字段,包括:私有、受保护、默认、公有; * 2.获取单个的: * 1).public

    54731

    java反射详解

    一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为...要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。...1).Field[] getFields():获取所有的"公有字段" * 2).Field[] getDeclaredFields():获取所有字段,包括:私有、受保护、默认、公有;

    83850

    告别java反射技术

    要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....以上的总结就是什么是反射 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象...(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...(String  className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。...获取所有字段,包括:私有、受保护、默认、公有;  * 2.获取单个的:  *      1).public Field getField(String fieldName):获取某个”公有的”字段;

    90310

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

    要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...forName(String className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。...():获取所有的"公有字段" * 2).Field[] getDeclaredFields():获取所有字段,包括:私有、受保护、默认、公有; * 2.获取单个的: * 1).public Field...){ System.out.println(f); } System.out.println("************获取所有的字段(包括私有、受保护、默认的)********************

    37830

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

    要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....以上的总结就是什么是反射 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象...(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...(String className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。...获取所有字段,包括:私有、受保护、默认、公有; * 2.获取单个的: * 1).public Field getField(String fieldName):获取某个"公有的"字段;

    59530

    java反射详解【转】与 反射是否会破坏类的封装性见解

    要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....以上的总结就是什么是反射 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象...(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...forName(String  className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。..."公有字段"   *      2).Field[] getDeclaredFields():获取所有字段,包括:私有、受保护、默认、公有;   * 2.获取单个的:   *      1).public

    70150

    对象的序列化与反序列化

    要允许不可序列化类的子类型序列化,可以假定该子类型负责保存和恢复超类型的公用 (public)、受保护的 (protected) 和(如果可访问)包 (package) 字段的状态。...在反序列化过程中,将使用该类的公用或受保护的无参数构造方法初始化不可序列化类的字段。可序列化的子类必须能够访问无参数构造方法。可序列化子类的字段将从该流中恢复。...通过调用 out.defaultWriteObject 可以调用保存 Object 的字段的默认机制。该方法本身不需要涉及属于其超类或子类的状态。...defaultReadObject 方法使用流中的信息来分配流中通过当前对象中相应指定字段保存的对象的字段。这用于处理类演化后需要添加新字段的情形。该方法本身不需要涉及属于其超类或子类的状态。...在从流中读取类的一个实例时需要指定替代的类应使用的准确签名来实现此特殊方法。

    1.1K150

    java反射详解与反射是否会破坏类的封装性见解

    要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象....以上的总结就是什么是反射 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象...(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。...forName(String  className)(常用) 其中1.1是因为Object类中的getClass方法、因为所有类都继承Object类。...获取所有字段,包括:私有、受保护、默认、公有;  * 2.获取单个的:  *      1).public Field getField(String fieldName):获取某个"公有的"字段;

    2.3K30

    Java常量池解析与字符串intern简介

    (6).类型初始化 2.CONSTANT_Fieldref入口解析 由于一个类型不会含有其超类型所定义的字段,所以对目标字段的搜索将会从字段所 指向的类型开始,从该类型开始搜索,再递归搜索其所实现或扩展的接口...,再递归搜索其超类,直至找到目标字段,并会将运行时常量池的该字段入口标记为已解 析,并在该常量池的数据上改为对这个字段的直接引用。...3.CONSTANT_Methodref入口解析 与字段的搜索类似但有所不同,其搜索顺序将从该类型开始,再递归搜索其超类,在递归搜索其所实现或扩展的接口。...实例变量的组织方式为:从Object类开始到该实例的类型,将类中声明的实例变量按在class文件中出现的顺序依次放在对象映像中。...知其初始类加载器),从而调用了不受信类型的方法访问受信类型的受保护成员。

    52820

    【说站】java继承的优缺点分析

    java继承的优缺点分析 1、优点 提高了代码的再利用性。 提高了代码的维护性。 让类与类有关,是多态的前提。 2、缺点 提高类的耦合性。这样一个类的变化会影响其他与此类相关的类别。...耦合:类与类的关系。 内聚:自己完成某件事的能力。 打破了封装性。 3、继承成员 继承机制引入了受保护的成员,提供了一个新的成员访问控制级别,可以理解为公共和私有。...在子类中,子类可以访问自己定义的所有成员,也可以访问父亲的共有和受保护的继承成员,但不能访问超级的私有继承成员。 继承者在子类中的访问控制与其在超类中的访问控制相同。...以及最初在超类中是共有成员,被子类继承后被视为共有成员;最初在超类中是受保护的成员,被子类继承后仍然是受保护的成员;最初在超类中是私有成员,被子类继承后被视为私有成员,但子类无法访问。...资料类型为子类的对象无法访问子类及其父类的受保护成员。 以上就是java继承的优缺点分析,希望对大家有所帮助。

    52020

    Spring Security 动态权限实现方案!

    在本案例中,受保护对象所需要的权限保存在数据库中,所以我们可以通过自定义类继承自 FilterInvocationSecurityMetadataSource,并重写 getAttributes 方法来提供受保护对象所需要的权限...FilterInvocationSecurityMetadataSource 接口,然后重写它里边的三个方法: getAttributes:该方法的参数是受保护对象,在基于 URL 地址的权限控制中,...受保护对象就是 FilterInvocation;该方法的返回值则是访问受保护对象所需要的权限。...从 menu 对象中获取 roles 属性,并将其转为一个数组,然后通过 SecurityConfig.createList 方法创建一个 Collection 对象并返回...如果当前请求的 URL 地址和数据库中 menu 表的所有项都匹配不上,那么最终返回 null。如果返回 null,那么受保护对象到底能不能访问呢?

    1.1K10

    反射的概念 和基本使用(一)

    1 反射 什么是反射 java反射 是指在运行状态中 对于任意一个类 我们都可以知到这个类的所有方法和属性 也可以调用其所有的方法和属性 这种动态获取的方式 我们称为 反射 什么是class对象...我们通过使用反射 就是通过Class类来实现的 Class 类的实例表示正在运行的 Java 应用程序中的类和接口。...获取Class类中的所有构造方法 基本类 public class Student { //---------------构造方法------------------- //(默认的构造方法...} //受保护的构造方法 protected Student(boolean n){ System.out.println("受保护的构造方法 n = " + n);...、受保护、默认、公有; * 2.获取单个的: * 1).public Field getField(String fieldName):获取某个"公有的"字段; * 2).public Field

    15410

    RefactoringGuru 代码异味和重构技巧总结

    内联类 问题:一个类几乎什么都不做,也不负责任何事情,也没有为它规划额外的责任。 解决方案:将所有功能从该类移动到另一个类。 隐藏委托关系 问题:客户端从对象 A 的字段或方法中获取对象 B。...隐藏方法 问题:一个方法不被其他类使用,或者只在它自己的类层次结构中使用。 解决方案:将方法设置为私有或受保护。...解决方案:为它们创建一个共享超类,并将所有相同的字段和方法移动到其中。 提取接口 问题:多个客户端使用类接口的同一部分。另一种情况:两个类中的部分接口是相同的。...解决方案:将这个相同的部分移动到它自己的接口。 折叠层次结构 问题:你有一个类层次结构,其中一个子类实际上与其超类相同。 解决方案:合并子类和超类。...用委托替换继承 问题:有一个子类只使用其超类的一部分方法(或者不可能继承超类数据)。 解决方案:创建一个字段并在其中放置一个超类对象,将方法委托给超类对象,并摆脱继承。

    1.9K40

    java反射总结

    反射相关总结 获取class对象 通过对象的getClass()方法 使用类的静态属性.class 通过class类的静态方法forName(String name) 一般只使用第三种方式 // 参数为你的完整包路径...(包括私有、受保护、默认、公有) Constructor[] conArray = clazz.getDeclaredConstructors(); 获取单个构造方法 clazz.getConstructor...(Class… parameterTypes); 获取单个的”公有的”构造方法 //1>、因为是无参的构造方法所以类型是一个null,不写也可以:这里需要的是一个参数的类型,切记是类型 //2>、返回的是描述这个无参构造函数的类对象...Constructor con = clazz.getConstructor(null); clazz.getDeclaredConstructor():获取”某个构造方法”可以是私有的,或受保护、默认...) : 所有”公有的”字段 Field[] fieldArray = stuClass.getFields(); clazz.getDeclaredFields() :获取所有的构造方法(包括私有、受保护

    41210
    领券