getDeclaredMethod
时间: 2024-05-16 09:17:40 浏览: 122
getDeclaredMethod是Java反射机制中的一个方法,用于获取类中的特定方法,包括private和protected方法,以及继承自父类的方法。这个方法需要传入方法的名称和参数列表,例如:
```
Class clazz = MyClass.class;
Method method = clazz.getDeclaredMethod("methodName", int.class, String.class);
```
这段代码会获取MyClass类中名为methodName、参数列表为int和String的方法。需要注意的是,由于该方法可以访问私有方法,因此在调用该方法之前需要使用setAccessible(true)方法来设置访问权限。例如:
```
method.setAccessible(true);
Object result = method.invoke(obj, 123, "hello");
```
这段代码会将obj对象传入methodName方法中,并传入参数123和"hello",然后返回方法的执行结果。
相关问题
.getDeclaredMethod
.getMethod()是Java反射机制中的一个方法。它用于获取一个类中指定的方法,不包括继承的方法。 它的语法是`Class.getDeclaredMethod(String name, Class<?>... parameterTypes)`。其中,`name`参数是要获取的方法的名称,`parameterTypes`参数是方法的参数类型。通过调用这个方法,我们可以获得指定名称和参数类型的方法对象。 这个方法返回的是一个`Method`对象,我们可以通过这个对象来操作和调用该方法。在引用中的代码中,使用了`.getDeclaredMethod(autoMatchConfig.getMethodName(), Integer.class)`来获取`SubjectService`类中指定名称和参数类型的方法。然后使用`.invoke(subjectService, GlobalConfig.OPEN_TO_IPLAN)`来调用该方法,其中`subjectService`是方法所属的对象,`GlobalConfig.OPEN_TO_IPLAN`是方法传递的实参。 通过这种方式,可以使用反射机制动态地调用指定的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [java 反射机制之 getDeclaredMethod()获取方法,然后invoke执行实例对应的方法](https://blog.csdn.net/margin_0px/article/details/88309290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [java中Class.getMethods()和Class.getDeclaredMethods()方法的区别](https://download.csdn.net/download/weixin_38752897/12756300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
clazz.getDeclaredMethod
clazz.getDeclaredMethod 是Java反射机制中的一个方法,用于获取一个类中声明的指定方法,不考虑访问权限。它的方法签名为:
```java
public Method getDeclaredMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
```
其中,name 表示要获取的方法的名称,parameterTypes 表示要获取的方法的参数类型列表。如果找到了符合条件的方法,则返回该方法的 Method 对象;否则,抛出 NoSuchMethodException 异常。需要注意的是,如果该方法是私有方法或受保护方法,需要使用 setAccessible(true) 方法才能访问。
阅读全文