通过反射获取指定类的指定方法

问题描述

package test;import java.lang.reflect.Method;public class OtherTest {public void doTest(OtherTest[] tests){}public static void main(String[] args) throws Exception{Class clazz = Class.forName("test.OtherTest");Method method = clazz.getDeclaredMethod("doTest", OtherTest[].class);}}请问有没办法通过clazz替换掉getDeclaredMethod的第二个入参,上面是写死成OtherTest[].class,但是实际情况下,需要写成通用方式,谢谢。注:目前采用将入参OtherTest[]修改为一个中间类的方式规避,请不要告知这种解决办法。

解决方案

只按方法名称查询:package bluechip.lang;import java.lang.reflect.Method;public class TestReflect {public void doTest(TestReflect[] tests) {}public static void main(String[] args) throws Exception {Class clazz = Class.forName("bluechip.lang.TestReflect");Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {if (method.getName() == "doTest") {System.out.println(method);break;}}}}
解决方案二:
你如果想通过映射获取方法public void doTest(OtherTest[] tests) 肯定最后还是要给死参数类型的不明白你要的通用指的是啥
解决方案三:
不知道你想要怎么个通用法? 比如介绍几种场景。springframework.util.ClassUtils/ReflectionUtils 工具类提供了很多简便方法而且你应该也知道public void doTest(OtherTest[] tests){ } 不如public void doTest(Class<?>... clazz){ 更通用。而且我们也知道Class<?>... clazz这是不可预测的,怎么能做成通用的? 不知道你所说的通用是指什么?

时间: 2024-11-10 00:18:56

通过反射获取指定类的指定方法的相关文章

利用java反射机制调用类的私有方法(推荐)_java

试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了.. 我写的一段简易实例代码如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * @author thomaslwq * @version 创建时间:Sep 4, 201

数据类型-通过类反射获取实体类对象

问题描述 通过类反射获取实体类对象 private String[] colName = null; // 属性名数组数组 private String[] colType = null; // 存放实体类的数据类型 如java.lang.Long private String[] colValue = null; // 要存进去的值 请问一下我有一个实体类 要把colValue里的数据以colType类型存到TbUser实体类的属性里 并且返回这个实体类 的对象 请大神给个思路 ... 多谢

java-怎么获取一个JAVA类中各个方法的代码块

问题描述 怎么获取一个JAVA类中各个方法的代码块 特殊需求:获取一个JAVA类中各个方法的代码块来查找方法中是否包含某个关键字,现在通过发射只能拿到方法的属性和注释,有没有API或者其他方法,求告知,3Q 没金币了..对不起大家 PS:获取本地源代码的,不是运行时的class 解决方案 myeclipse中调试调用带有静态代码块的类时出现java.lang.NoClassDefFoundError的处理方法在DWR中实现直接获取一个JAVA类的返回值的两种方法java代码获取当前类类名.方法名

Python中动态获取对象的属性和方法的教程_python

首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding: UTF-8 import sys # 模块,sys指向这个模块对象 import inspect def foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.

ruby中有没有获取指定类中所有方法名的方法?

问题描述 请问ruby中有没有获取指定类中所有方法名的方法?类似,php中 get_class_methods的方法我想去遍历执行一个指定类中的所有方法...  问题补充:例<br />class Test<br />  def a<br />  end<br /><br />  def b<br />  end<br /><br />  def c<br />  end<br />en

python获取指定路径下所有指定后缀文件的方法

  本文实例讲述了python获取指定路径下所有指定后缀文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 获取指定路径下所有指定后缀的文件 # dir 指定路径 # ext 指定后缀,链表&不需要带点 或者不指定.例子:['xml', 'java'] def GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext !=

Java 获取指定日期的实现方法总结

以下是对Java中获取指定日期的实现方法进行了归纳总结,需要的朋友可以参考下   复制代码 代码如下: 格式化日期 String-->Date  或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   Date  date = sdf.parse("2009-11-04");//String-->Date   String  sdate  = sdf

JavaScript获取指定元素位置的方法

 本文实例讲述了JavaScript获取指定元素位置的方法.分享给大家供大家参考.具体如下: 代码如下: function showpane() { var self = document.getElementById("eID"); var left = self.getBoundingClientRect().left + document.documentElement.scrollLeft; var top = self.getBoundingClientRect().top

JS使用ajax方法获取指定url的head信息中指定字段值的方法

 这篇文章主要介绍了JS使用ajax方法获取指定url的head信息中指定字段值的方法,实例分析了Ajax操作URL中head信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS使用ajax方法获取指定url的head信息中指定字段值的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码用来获取ajax_info.txt的head信息中的Last modified属性,最后修改时间 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1