Java里如何动态生成方法名!!! 我有一个类A我想动态生成方法名只需要定义接口或者其他就可以了!还望各位老鸟指点一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想要类似效果??obj.foo = function() {alert("Hello World");} 有一个接口A里面有方法get();我希望实现实现A这个接口的类B中的get()方法名变成getB()之类的以后任意一个实现A这个接口的类其get()方法名编程getClassName();望指教! 据我浅薄的功底,我理解的是既然实现某接口,那么方法名必须和接口是一致的,除非用继承,继承之后,把继承来的方法在你的getB之类的方法里面super.get(),但这种也无法动态.真正的动态,不知道是否可行. ER反射得了反正你都是getClassName不过这个要通过文档做好规范 你要继承接口A并实现其方法,比如说你定义一个类B实现接口A,这个过程,是你自己写代码。这个过程,本来就是静态的,是你自己用手敲代码。这根本就不是动态的,你为什么还要动态的生成方法名呢? 唉…… 坐等…… 思考…… google…… 百度……搜狗…… I don't understand what you say. public Object invokeMethod(T obj,String methodName, Object[] args){ Object object = null; @SuppressWarnings("rawtypes") Class ownerClass = obj.getClass(); @SuppressWarnings("rawtypes") Class[] argsClass = new Class[args.length]; for(int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method; try { methodName = "get" + methodName; method = ownerClass.getMethod(methodName, argsClass); object = method.invoke(obj, args); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ } return object; } 加入有一个对象A,里面有方法A getAbc(Object...obj),首先把方法的参数放入数组中,Object[] args,这样调用invokeMethod(A,Abc,args),这个的返回值就是getAbc的返回值。 用了反射。 人员管理系统 请高手进! 急求!!java se 怎样调整随机数的出现率 用iterators遍历有什么好处 java日期问题,高手请进 住了20天刚出院(不是非典),毕业设计还没做好,就要交了,急啊!!! 怎么把class文件做成jar文件!!?? 高手请指教!!!如何生成这样的树形。。。。。。 tomcat and 2000IIS的问题 急!急!急!请问各位高手我有个关于WEBLOGIC的问题不能解决,请给予帮忙。谢谢! 一个小问题 :) 排序的JTable 求好心人帮忙解决hibernate问题
obj.foo = function() {alert("Hello World");}
里面有方法get();
我希望实现实现A这个接口的类B中的get()方法名变成getB()之类的
以后任意一个实现A这个接口的类其get()方法名编程getClassName();
望指教!
反正你都是getClassName
不过这个要通过文档做好规范
这根本就不是动态的,你为什么还要动态的生成方法名呢?
坐等……
思考……
google……
百度……
搜狗……
Object object = null;
@SuppressWarnings("rawtypes")
Class ownerClass = obj.getClass();
@SuppressWarnings("rawtypes")
Class[] argsClass = new Class[args.length];
for(int i = 0, j = args.length; i < j; i++) {
argsClass[i] = args[i].getClass();
}
Method method;
try {
methodName = "get" + methodName;
method = ownerClass.getMethod(methodName, argsClass);
object = method.invoke(obj, args);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
}
return object;
}
加入有一个对象A,里面有方法A getAbc(Object...obj),首先把方法的参数放入数组中,Object[] args,这样调用invokeMethod(A,Abc,args),这个的返回值就是getAbc的返回值。
用了反射。