Tag: reflection

JVM何时加载类?

假设我有以下课程: class Caller { public void createSomething() { new Something(); } } 会执行这一行: static void main() { Class clazz = Caller.class; } 导致JVM加载类Something或是延迟类加载,直到调用方法createSomething() ?

如何通过reflection阅读Javadoc注释?

我需要知道如何在运行时读取Javadoc注释(可能是通过reflection?) 说我有以下function: /** * function that do some thing */ public void myFunc() { //… } 在运行时,我可以通过reflection获得有关此函数的大量信息。但是无法读取注释。 所以问题是,如何在运行时阅读这个javadoc注释。

Integer.class与int.class

Integer.class , Integer.TYPE和int.class什么int.class ? 适合我 Integer.class是Integer(Wrapper)类对象的引用 但是int.class是什么,因为int不是一个类,它是一个原始类型。 Integer.TYPE指的是什么?

如何在java中运行时设置ArrayList的generics类型?

好吧,所以我正在建立自己的XML序列化(我知道还有其他的,甚至是一些内置于Java的,但我自己也是在学习,因为它非常棒)。 我有序列化了。 我目前正在进行反序列化(读取XML文件并根据文件中的数据组装对象),我遇到了设置generics类型的问题。 经过广泛的研究,我想出了如何获得类的generics类型,以便我可以在序列化时编写它们,但我不知道如何做到这一点: Class c = Class.forName(string); ArrayList list = new ArrayList(); 我在C#中看到了一些这方面的答案,但显然C#比Java更通用,我无法用Java复制那里的解决方案。 即使用reflection,这甚至可以完成吗?

如何从java类外部调用私有方法

我有一个Dummy类,它有一个名为sayHello的私有方法。 我想从Dummy外面打电话给sayHello 。 我认为它应该可以reflection,但我得到一个IllegalAccessException 。 有任何想法吗???

在java中,如何序列化未标记为Serializable的类?

我要序列化的第三方库中有一个特定的类。 我该怎么做呢? 我假设我必须编写一个方法来接受类的对象并使用reflection来获取私有成员值。 然后,为了反序列化,我会使用reflection来放回值。 这会有用吗? 有更容易的方法吗?

使用reflection和数组参数构造类的IllegalArgumentException

运行以下代码: public class Test { public Test(Object[] test){ } public static void main(String[] args) throws Exception{ Constructor cd = Test.class.getConstructor(Object[].class); Object[] objs = {1, 2, 3, 4, 5, 6, 7, 8}; cd.newInstance(objs); } } 我收到错误: Exception in thread “main” java.lang.IllegalArgumentException: wrong number of arguments at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at groupd.poker.utils.tests.ai.nqueens.Test.main(Test.java:17) […]

是否可以使用Java Reflection打印父类的属性?

是否可以使用Java Reflection打印出父类的属性。

Java:无法通过reflection访问注释

这是一个测试类: import java.lang.annotation.Annotation; import java.lang.reflect.Method; public class TestAnnotations { @interface Annotate{} @Annotate public void myMethod(){} public static void main(String[] args) { try{ Method[] methods = TestAnnotations.class.getDeclaredMethods(); Method m = methods[1]; assert m.getName().equals(“myMethod”); System.out.println(“method inspected ? ” + m.getName()); Annotation a = m.getAnnotation(Annotate.class); System.out.println(“annotation ? ” + a); System.out.println(“annotations length ? ” + m.getDeclaredAnnotations().length); } catch(Exception […]

获取类实例变量并使用reflection打印它们的值

我有一个带有getter和setter的2个POJO类,现在我正在尝试获取该类的所有类实例变量。 我知道我们可以用reflection怎么做? 这是我的POJO类,它将扩展我的reflection类。 class Details{ private int age; private String name; } 反思类是这样的: class Reflection{ public String toString(){ return all the fields of that class }