草庐IT

getMethod

全部标签

C# - GetMethod 返回 null

我有A类:publicabstractclassA{}然后我有从它派生的B类:publicsealedclassB:A{publicvoidSomeMethod(){varmethod=this.GetType().GetMethod("AddText");}privatevoidAddText(stringtext){...}}为什么GetMethod返回null? 最佳答案 varmethodInfo=this.GetType().GetMethod("AddText",BindingFlags.Instance|Binding

c# - 不区分大小写的 GetMethod?

foreach(varfilterinfilters){varfilterType=typeof(Filters);varmethod=filterType.GetMethod(filter);if(method!=null)value=(string)method.Invoke(null,new[]{value});}获取方法有没有不区分大小写的方法? 最佳答案 是的,使用BindingFlags.IgnoreCase:varmethod=filterType.GetMethod(filter,BindingFlags.Ignor

c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc)

我使用Type.GetMethods(BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)检索给定类型的方法数组。问题是返回的MethodInfo可能包含编译器生成的方法,而我不想要这些方法。例如:propertyboolEnabled{get;将得到boolget_Enabled()事件SomethingChanged会得到add_SomethingChanged(事件处理程序)和remove_SomethingChanged(事件处理程序)我或许可以添加一些过滤逻辑

java - 通用继承和调用 GetMethod().getReturnType()

在我当前的项目中,我有如下建模的类。在某些时候,getReturnTypeForGetId()类的方法在类A和B上被调用。使用A调用方法会按预期返回Integer,但B会返回Serializable。我在这里错过了什么?我是被一些令人发指的删除事情咬伤了,还是只是错过了某种通用的上下文破坏?编辑:向B添加一个覆盖的getId()方法解决了这个问题,但我仍然想了解我我遇到了。importjava.io.Serializable;publicclassWeirdTester{staticinterfaceIdentifiable{TgetId();voidsetId(finalTid);}

重写方法上的 Java Class.getMethods() 行为

在Java中使用反射编写简单的JSON序列化程序时,我对Class.getMethods()的行为感到措手不及。如果覆盖方法的返回类型扩展了被覆盖方法的返回类型,那么JavaClass.getMethods()似乎会同时返回覆盖方法和被覆盖方法。因此,例如给定接口(interface):staticinterfaceA{Ax();Ay();}staticinterfaceBextendsA{Bx();Ay();}A.class.getMethods()按预期返回两个方法的数组但是B.class.getMethods()返回一个包含3个方法的数组(这对我来说有点违反直觉)。在这3个中,1

java - 在 Mockito 中捕获一个参数

我正在测试某个类。此类在内部实例化一个“GetMethod”对象,该对象传递给“HttpClient”对象,该对象被注入(inject)到测试类中。我正在模拟“HttpClient”类,但我也需要修改“GetMethod”类的一个方法的行为。我正在玩ArgumentCaptor,但我似乎无法在“when”调用中获取实例化对象。例子:HttpClientmockHttpClient=mock(HttpClient.class);ArgumentCaptorgetMethod=ArgumentCaptor.forClass(GetMethod.class);when(mockHttpCli

java - 将 java.lang.reflect.getMethod 与多态方法一起使用

考虑以下片段:publicclassReflectionTest{publicstaticvoidmain(String[]args){ReflectionTesttest=newReflectionTest();Stringobject=newString("Hello!");//1.StringisacceptedasanObjecttest.print(object);//2.TheappropriatemethodisnotfoundwithString.classtry{java.lang.reflect.Methodprint=test.getClass().getMeth

java - 如何使 Class.getMethod() 抛出 SecurityException

我有一个实用方法可以为特定字段查找对象的getter方法(使用反射):publicstaticMethodfindGetter(finalObjectobject,finalStringfieldName){if(object==null){thrownewNullPointerException("objectshouldnotbenull");}elseif(fieldName==null){thrownewNullPointerException("fieldNameshouldnotbenull");}StringgetterName=getMethodNameForField

带有子类参数的Java getMethod

我正在编写一个使用反射来动态查找和调用方法的库。只给定一个对象、一个方法名称和一个参数列表,我需要调用给定的方法,就好像该方法调用已明确写入代码中一样。我一直在使用以下方法,在大多数情况下都有效:staticvoidcallMethod(Objectreceiver,StringmethodName,Object[]params){Class[]paramTypes=newClass[params.length];for(inti=0;i但是,当参数之一是该方法支持的类型之一的子类时,反射API会抛出NoSuchMethodException。例如,如果接收器的类定义了testMeth

java - getMethods() 返回我在实现通用接口(interface)时没有定义的方法

一个简单的界面:interfaceFoo{voidmyMethod(Stringarg);}classFooImplimplementsFoo{voidmyMethod(Stringarg){}publicstaticvoidmain(String[]args){Classcls=FooImpl.class;try{for(Methodmethod:cls.getMethods()){System.out.print(method.getName()+"\t");for(ClassparamCls:method.getParameterTypes()){System.out.print