草庐IT

反射面

全部标签

Java 反射 : Getting fields and methods in declaration order

有没有办法使用反射按声明顺序获取类声明的字段(和方法)?根据文档,getFields()、getDeclaredFields()等返回的方法和字段的顺序是未定义的。可以使用Javareflection:Istheorderofclassfieldsandmethodsstandardized?中建议的注释来指定类似索引的内容。有没有更好的选择,即不必手动指定索引?现在在你问我需要这个做什么之前:我们有一个方法,它以一个相当大的数据结构作为输入并对其执行冗长的计算。为了创建单元测试,我们创建了一个方法,该方法接受一个输入对象和一个输出实例,并创建Java源代码(设置输入、调用计算方法以及

java - 通过反射访问Java中的私有(private)变量

这个问题在这里已经有了答案:IsitpossibleinJavatoaccessprivatefieldsviareflection[duplicate](3个回答)关闭9年前。我正在尝试编写一个使用反射在类中获取私有(private)字段的方法。这是我的类(class)(本示例已简化):publicclassSomeClass{privateintmyField;publicSomeClass(){myField=42;}publicstaticObjectgetInstanceField(Objectinstance,StringfieldName)throwsThrowable{

java - 通过反射访问Java中的私有(private)变量

这个问题在这里已经有了答案:IsitpossibleinJavatoaccessprivatefieldsviareflection[duplicate](3个回答)关闭9年前。我正在尝试编写一个使用反射在类中获取私有(private)字段的方法。这是我的类(class)(本示例已简化):publicclassSomeClass{privateintmyField;publicSomeClass(){myField=42;}publicstaticObjectgetInstanceField(Objectinstance,StringfieldName)throwsThrowable{

java - 如何反射性地调用以 null 作为参数的方法?

我正在尝试在Java中反射性地调用此方法:publicvoidsetFoo(ArrayListfoo){this.foo=foo;}问题是我想将null作为null传递,这样foo就变成了null。但是,在以下方法中,它假设没有参数,我得到IllegalArgumentException(wrongnumberofarguments):method.invoke(newFooHolder(),null);//-----------------------------^-Iwantnulltobepassedtothemethod...这是如何实现的? 最佳答

java - 如何反射性地调用以 null 作为参数的方法?

我正在尝试在Java中反射性地调用此方法:publicvoidsetFoo(ArrayListfoo){this.foo=foo;}问题是我想将null作为null传递,这样foo就变成了null。但是,在以下方法中,它假设没有参数,我得到IllegalArgumentException(wrongnumberofarguments):method.invoke(newFooHolder(),null);//-----------------------------^-Iwantnulltobepassedtothemethod...这是如何实现的? 最佳答

java - 使用反射设置字段值

我正在处理一个非开源项目,我需要修改它的一个或多个类。在一个类中是以下集合:privateMapttp=newHashMap();我需要做的就是在这里使用反射并使用concurrenthashmap。我试过下面的代码,但它不起作用。Fieldf=..getClass().getDeclaredField("ttp");f.setAccessible(true);f.set(null,newConcurrentHashMap()); 最佳答案 希望这是您正在尝试做的事情:importjava.lang.reflect.Field;im

java - 使用反射设置字段值

我正在处理一个非开源项目,我需要修改它的一个或多个类。在一个类中是以下集合:privateMapttp=newHashMap();我需要做的就是在这里使用反射并使用concurrenthashmap。我试过下面的代码,但它不起作用。Fieldf=..getClass().getDeclaredField("ttp");f.setAccessible(true);f.set(null,newConcurrentHashMap()); 最佳答案 希望这是您正在尝试做的事情:importjava.lang.reflect.Field;im

java - 单例:如何停止通过反射创建实例

我知道在Java中我们可以通过new、clone()、Reflection和serializing创建一个类的实例和反序列化。我创建了一个实现单例的简单类。而且我需要停止创建我的类的实例。publicclassSingletonimplementsSerializable{privatestaticfinallongserialVersionUID=3119105548371608200L;privatestaticfinalSingletonsingleton=newSingleton();privateSingleton(){}publicstaticSingletongetIns

java - 单例:如何停止通过反射创建实例

我知道在Java中我们可以通过new、clone()、Reflection和serializing创建一个类的实例和反序列化。我创建了一个实现单例的简单类。而且我需要停止创建我的类的实例。publicclassSingletonimplementsSerializable{privatestaticfinallongserialVersionUID=3119105548371608200L;privatestaticfinalSingletonsingleton=newSingleton();privateSingleton(){}publicstaticSingletongetIns

java - 用java反射实例化私有(private)内部类

是否可以使用Java反射从另一个类实例化私有(private)内部类。例如,如果我采用此代码publicclassMain{publicstaticvoidmain(String[]args){}}classOtherClass{privateclassTest{}}是否可以从main类中的main方法实例化并获得对Test的访问权限。 最佳答案 是的,您可以使用Java反射实例化私有(private)内部类。为此,您需要有一个外部类实例并调用内部类构造函数,该构造函数将在其第一个参数中使用外部类实例。classOuterClass