草庐IT

反射面

全部标签

Java 反射 - 对象不是声明类的实例

Google上到处都在问这个问题,但我仍然遇到问题。这就是我想要做的。因此,就像我的标题所述,我收到“对象不是声明类的实例”错误。有任何想法吗?谢谢!Main.javaClassbase=Class.forName("server.functions.TestFunction");MethodserverMethod=base.getMethod("execute",HashMap.class);serverMethod.invoke(base,newHashMap());TestFunction.javapackageserver.functions;importjava.util.

java - 如何使用 Java 反射调用父类(super class)方法

我有两个类(class):publicclassA{publicObjectmethod(){...}}publicclassBextendsA{@OverridepublicObjectmethod(){...}}我有一个B的实例。如何从b调用A.method()?基本上和从B调用super.method()的效果一样。Bb=newB();Classsuperclass=b.getClass().getSuperclass();Methodmethod=superclass.getMethod("method",ArrayUtils.EMPTY_CLASS_ARRAY);Object

java - 如何使用 Java 反射调用父类(super class)方法

我有两个类(class):publicclassA{publicObjectmethod(){...}}publicclassBextendsA{@OverridepublicObjectmethod(){...}}我有一个B的实例。如何从b调用A.method()?基本上和从B调用super.method()的效果一样。Bb=newB();Classsuperclass=b.getClass().getSuperclass();Methodmethod=superclass.getMethod("method",ArrayUtils.EMPTY_CLASS_ARRAY);Object

Java:使用反射实例化枚举

假设你有一个像这样的文本文件:my_setting=ONsome_method=METHOD_Averbosity=DEBUG...您希望相应地更新相应的对象:Settingmy_setting=ON;Methodsome_method=METHOD_A;Verbosityverbosity=DEBUG;...所有这些都是不同类型的枚举。我想要一种通用的方法来实例化枚举值。也就是说,在运行时使用反射,并且事先不知道对象的枚举类型。我会想到这样的事情:for(ConfigLineline:lines){String[]tokens=line.string.split("=",2);Str

Java:使用反射实例化枚举

假设你有一个像这样的文本文件:my_setting=ONsome_method=METHOD_Averbosity=DEBUG...您希望相应地更新相应的对象:Settingmy_setting=ON;Methodsome_method=METHOD_A;Verbosityverbosity=DEBUG;...所有这些都是不同类型的枚举。我想要一种通用的方法来实例化枚举值。也就是说,在运行时使用反射,并且事先不知道对象的枚举类型。我会想到这样的事情:for(ConfigLineline:lines){String[]tokens=line.string.split("=",2);Str

java - 使用反射访问不可见的类

我正在尝试使用反射获取一个不可见类的实例,即AKA包私有(private)类。我想知道是否有一种方法可以切换修饰符以使其公开,然后使用Class.forName访问它。当我现在尝试这样做时,它会阻止我说我做不到。不幸的是,Class类没有setAccesible方法。 最佳答案 嵌套类-在其他类中定义的类(包括静态和非静态类)内部类-非静态嵌套类(内部类的实例需要外部类的实例存在)非嵌套(顶级)类根据您的问题,我们知道您要访问的构造函数不是公开的。所以你的类可能看起来像这样(A类在某些包中,与我们的不同)packagepackage

java - 使用反射访问不可见的类

我正在尝试使用反射获取一个不可见类的实例,即AKA包私有(private)类。我想知道是否有一种方法可以切换修饰符以使其公开,然后使用Class.forName访问它。当我现在尝试这样做时,它会阻止我说我做不到。不幸的是,Class类没有setAccesible方法。 最佳答案 嵌套类-在其他类中定义的类(包括静态和非静态类)内部类-非静态嵌套类(内部类的实例需要外部类的实例存在)非嵌套(顶级)类根据您的问题,我们知道您要访问的构造函数不是公开的。所以你的类可能看起来像这样(A类在某些包中,与我们的不同)packagepackage

Java 反射 : Is the order of class fields and methods standardized?

在Java类上使用反射来访问所有字段、方法等:这些元素是否有标准化顺序(在某些标准中指定)?当然,我可以凭经验检查它,但我需要知道它是否总是一样的。编辑:我在等待这个问题:我需要什么订单;)长话短说:我有JAXB注释的类,不想要直观地表示这些类。而XML属性的顺序与XML都不相关标准,也不是JAXB,我希望XML属性有一定的顺序视觉表现。例如:开始在结束之后。这会伤害一个人的直觉。 最佳答案 根据thedocumentation:getFields()ReturnsanarraycontainingFieldobjectsrefle

Java 反射 : Is the order of class fields and methods standardized?

在Java类上使用反射来访问所有字段、方法等:这些元素是否有标准化顺序(在某些标准中指定)?当然,我可以凭经验检查它,但我需要知道它是否总是一样的。编辑:我在等待这个问题:我需要什么订单;)长话短说:我有JAXB注释的类,不想要直观地表示这些类。而XML属性的顺序与XML都不相关标准,也不是JAXB,我希望XML属性有一定的顺序视觉表现。例如:开始在结束之后。这会伤害一个人的直觉。 最佳答案 根据thedocumentation:getFields()ReturnsanarraycontainingFieldobjectsrefle

Java 反射 : Why is it so slow?

基于Java反射慢的名声,我一直避免使用它。我在当前项目的设计中达到了一个点,能够使用它会使我的代码更具可读性和优雅,所以我决定试一试。我只是对差异感到惊讶,我注意到有时运行时间几乎长了100倍。即使在这个只实例化一个空类的简单示例中,也令人难以置信。classB{}publicclassTest{publicstaticlongtimeDiff(longold){returnSystem.currentTimeMillis()-old;}publicstaticvoidmain(Stringargs[])throwsException{longnumTrials=(long)Math