我是靠谱客的博主 聪慧秋天,最近开发中收集的这篇文章主要介绍java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

小编典典

您需要执行此操作的事实表明设计存在缺陷。

但是,可以按照以下步骤进行操作:

class A

{

private int privateField = 3;

}

class B extends A

{}

class C extends B

{

void m() throws NoSuchFieldException, IllegalAccessException

{

Field f = getClass().getSuperclass().getSuperclass().getDeclaredField("privateField");

f.setAccessible(true); // enables access to private variables

System.out.println(f.get(this));

}

}

致电:

new C().m();

Andrzej Doyle所说的 “提高类层次结构”的 一种方法如下:

Class c = getClass();

Field f = null;

while (f == null && c != null) // stop when we got field or reached top of class hierarchy

{

try

{

f = c.getDeclaredField("privateField");

}

catch (NoSuchFieldException e)

{

// only get super-class when we couldn't find field

c = c.getSuperclass();

}

}

if (f == null) // walked to the top of class hierarchy without finding field

{

System.out.println("No such field found!");

}

else

{

f.setAccessible(true);

System.out.println(f.get(this));

}

2020-11-01

最后

以上就是聪慧秋天为你收集整理的java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段?的全部内容,希望文章能够帮你解决java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部