草庐IT

Reflection

全部标签

java - 是否有一种通用的 Java 方法来修剪对象图中的每个字符串?

我希望修剪属于对象图的所有字符串。所以我有一个像这样的对象图RootElement-name(String)-adjective(String)-itemsArrayOfItems-getItems(List)-get(i)(Item)Item-name(String)-value(double)-alias(String)-referencesArrayOfReferences-getReferences(List)-get(i)(Reference)Reference-prop1(String)-prop2(Integer)-prop3(String)此对象图中表示的每个类的每个属

java - 根据运行时属性对对象列表进行排序

我有一个ValueObjects的List[画外音]。这些对象有很多属性和相应的获取/设置方法。我想根据我将在运行时获得的属性对这个List进行排序。让我详细解释一下...我的语音是这样的:publicclassEmployee{Stringname;Stringid;privateStringgetName(){returnname;}privateStringgetId(){returnid;}}我将在运行时得到一个字符串sortType,它可以是"id"或"name"。我想根据String的值对列表进行排序。我曾尝试同时使用Comparator和反射,但没有成功。可能是我没有正确

java - 如何将 String 变量解析为 Java 中的任何数据类型?

我想构建一个方法,通过Java反射将字符串值转换为给定的Field对象数据类型。这是我的代码:Stringvalue=...;Classclazz=getClazz();Fieldf=clazz.getDeclaredField("fieldName");booleanfieldIsAccessible=f.isAccessible();if(!fieldIsAccessible){f.setAccessible(true);}f.getType().cast(value);if(!fieldIsAccessible){f.setAccessible(false);}当我第一次尝试运行

java - 将对象转换为数组

publicstaticvoidmain(String[]args)throwsException{int[]a=newint[]{1,2,3};method(a);}publicstaticvoidmethod(Objecto){if(o!=null&&o.getClass().isArray()){Object[]a=(Object[])o;//java.lang.ClassCastException:[Icannotbecastto[Ljava.lang.Object;}}我不应该知道方法中参数o的类型。然后如何将其转换为Object[]数组?instanceof不能作为解决方案

java - 使用反射初始化数组

请有人帮助理解我们如何使用反射在java中初始化数组。对于一个简单的对象,我们可以这样做:Classl_dto_class=Class.forName(p_fld.getType().getName());Objectl_dto_obj=l_dto_class.newInstance();但对于数组,它给了我异常(exception)。java.lang.InstantiationException 最佳答案 你可以像这样实例化数组:if(l_dto_class.isArray()){ObjectaObject=Array.newI

java - 如何获取 Foo<?> 对象的 <?> 值?

(这是我的previousquestion的后续)我有一个Foo对象,foo.Foo是一个接口(interface)。如何获取隐藏在后面的类型值?请注意,这不是微不足道的,因为foo例如可以是Bar类的对象,其中BarimplementsFoo,或一些实现接口(interface)的匿名类FloatFoo,其中FloatFooextendsFoo.我需要一个适用于所有情况的解决方案。提前致谢:) 最佳答案 使用反射是不可能的,因为Java泛型有TypeErasure的问题.在运行时,为通用类Foo定义的类型已被删除,因此对该类使用反

java - 多维长度数组反射java

java中如何通过反射求多维数组的长度? 最佳答案 多维数组没有“长度”之类的东西;它可能不是矩形的。我猜你说的是维数。您需要迭代地深入其中并进行计数。publicintgetDimensionCount(Objectarray){intcount=0;ClassarrayClass=array.getClass();while(arrayClass.isArray()){count++;arrayClass=arrayClass.getComponentType();}returncount;}

java - 获取注释值?

如何在注释中设置值?我定义了以下注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceJsonElement{inttype();}这是在POJO类中使用它的方法@JsonElement(type=GETTER_METHOD)publicStringgetUsername{........................}以及使用反射来检查此方法是否存在JSonElement注释并检查类型值是什么的util类。Methodmethods[]=classObject.getClas

java - 通过 Java 中的反射设置私有(private)字段的最短、最好、最干净的方法是什么?

您好,我已经在J​​ava中使用过反射。但是,如果您使用的是Java标准(例如注入(inject)私有(private)字段),则必须编写大量代码才能完成工作。在Java对象中注入(inject)私有(private)字段的最短方法是什么?在广泛使用和生产就绪的库中是否有实现? 最佳答案 在不使用外部库的情况下,您需要:获取Field实例将字段实例设置为可访问设置新值如下:Fieldf1=obj.getClass().getDeclaredField("field");f1.setAccessible(true);f1.set(ob

java - IllegalArgumentException:Java Constructor.newInstance() 中的参数数量错误

考虑以下代码,publicclassStartUp{publicStartUp(String[]test){}publicstaticvoidmain(String[]args)throwsException{Constructorcd=StartUp.class.getConstructor(String[].class);System.out.println(cd.newInstance(newString[]{}).toString());}}这是怎么回事?我得到以下异常:Exceptioninthread"main"java.lang.IllegalArgumentExcept