草庐IT

反射率

全部标签

java - 当我停止使用 Tomcat 9 和 Java 10 的 Spring Boot Web 应用程序时的非法反射访问

我正在尝试使用SpringBoot2进行Java10开发,但遇到了一些问题。该应用程序是一个基于SpringBoot2的简单Web应用程序。应用程序启动正常,但当我停止它时,我收到此警告:WARNING:AnillegalreflectiveaccessoperationhasoccurredWARNING:Illegalreflectiveaccessbyorg.apache.catalina.loader.WebappClassLoaderBase(file:/C:/Users/CS/.m2/repository/org/apache/tomcat/embed/tomcat-emb

java - 我如何通过反射(reflection)性地比较 POJO 的领域

我基本上是在寻找一个单元测试框架,我可以用它来比较不覆盖equals和hascode方法的POJO。我查看了JUnit、TestNG和Mockito,但它们似乎无法解决问题。例如考虑下面的代码:publicclassCarBean{privateStringbrand;privateStringcolor;publicCarBean(){}publicCarBean(Stringbrand,Stringcolor){this.brand=brand;this.color=color;}/***@returnthebrand*/publicStringgetBrand(){returnb

Java:静态嵌套类和反射: "$"与 "."

如果我在下面的代码中有一个com.example.test.Enum2.Test类,为什么getCanonicalName()返回com.example。test.Enum2.Test但Class.forName()需要"com.example.test.Enum2$Test"作为参数?有没有一种方法可以保持一致,这样我就可以通过名称序列化/反序列化枚举值,而不必检查每个$与.的可能性,当枚举是一个嵌套类?packagecom.example.test;importjava.util.Arrays;publicclassEnum2{enumTest{FOO,BAR,BAZ;}publi

java - 为什么 apache spark 不适用于 java 10?我们得到非法反射然后 java.lang.IllegalArgumentException

spark2.3不适用于java1.10(截至2018年7月)是否有任何技术原因?这是我使用spark-submit运行SparkPi示例时的输出。$./bin/spark-submit./examples/src/main/python/pi.pyWARNING:AnillegalreflectiveaccessoperationhasoccurredWARNING:Illegalreflectiveaccessbyorg.apache.hadoop.security.authentication.util.KerberosUtiltomethodsun.security.krb5.

java - 使用反射调用带有数组参数的方法

我正在尝试编写一个方法,通过将字符串数组作为参数传递给该方法来执行另一个类的静态方法。这是我所拥有的:publicstaticvoidexecuteStaticCommand(finalString[]command,Classprovider){Method[]validMethods=provider.getMethods();StringjavaCommand=TextFormat.toCamelCase(command[0]);for(Methodmethod:validMethods){if(method.getName().equals(javaCommand)){try{

Java反射isAccessible方法

我正在学习反射(reflection)。当我执行以下代码时:packagemain;importjava.lang.reflect.Field;publicclassMain{publicstaticvoidmain(String[]args)throwsNoSuchFieldException,SecurityException{BasefirstBase=newBase();FieldfirstBaseField=firstBase.getClass().getDeclaredField("protectedBuffer");System.out.println(firstBase

java - 类上对 newInstance 的简单反射调用的 InstantiationException?

我有一个抽象类A,即publicabstractclassA{privatefinalObjecto;publicA(Objecto){this.o=o;}publicinta(){return0;}publicabstractintb();}我有一个子类B,即publicclassBextendsA{publicB(Objecto){super(o);}@Overridepublicinta(){return1;}@Overridepublicintb(){return2;}}我正在执行以下代码:Constructorc=B.class.getDeclaredConstructor(

java - 如何在 Java 中使用反射创建枚举实例?

当我在阅读EffectiveJava时,作者告诉我单元素enum类型是实现单例的最佳方式,因为我们不必须考虑复杂的序列化或反射攻击。这意味着我们不能使用反射创建enum的实例,对吧?我做了一些测试,这里有一个enum类:publicenumWeekday{}然后我尝试创建一个Weekday的实例:ClassweekdayClass=Weekday.class;Constructorcw=weekdayClass.getConstructor(null);cw.setAccessible(true);cw.newInstance(null);如您所知,这是行不通的。当我将关键字enum更

java - 反射和不变性应该如何协同工作

根据JSR-133不可变对象(immutable对象)是线程安全的,不需要同步。然而,可以使用反射更新最终字段的值:packagecom.stackoverflow;importjava.lang.reflect.Field;publicclassWhatsGoingOn{staticclassImmutable{privatefinalintvalue;publicImmutable(intvalue){this.value=value;}publicintgetValue(){returnvalue;}}publicstaticvoidmain(String[]args)throw

java - 当我通过反射创建对象时,如何重写 Java 中的方法?

在Java中,是否可以覆盖您使用反射创建的类中的方法?例如,假设我有以下类(class):publicclassMyObject{publicStringfoo,bar;publicMyObject(Stringfoo){this.foo=foo;this.bar=foo+"bar";}publicvoidsetBar(Stringbar){this.bar=bar;}}在一个类中,我想直接创建它并重写它的setBar方法,如下所示:MyObjectobj=newMyObject("something"){@OverridepublicvoidsetBar(Stringbar){thi