- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
invoke
invoke
类A中有一个成员是类B的对象c,如何在c中调用A的成员方法或者向A传递参数,发信号。多谢。
回答:
可以使用invoke反射,实现这样的机制。其实也就是Spring里面的Ioc了。
最好是用第三方做运行载体。我这里为了描述方便,也放在ClassB里面的Object c通过Invoke调用这两方法
import java.lang.reflect.Method;
public class ClassA {
//ClassA里面有add、和StringAdd两个不同方法。c是ClassB的Object
ClassB c=new ClassB();
public void add(Integer param1, Integer param2) {
System.out.println(param1 + param2);
}
public void StringAdd(String abc){
System.out.println(out+abc);
}
public static void main(String[] args){
ClassA a=new ClassA();
try {
a.c.invokeMehton(a, add,new Object[] {new Integer(100),new Integer(200)});//反射调用方法add
a.c.invokeMehton(a, StringAdd,new Object[] {new String(abccc)});//反射调用方法StringAdd
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class ClassB{
public ClassB(){
System.out.println(this is ClassB);
}
public Object invokeMehton(Object owner,String methodName,Object[] args) throws Exception{
//根据methodName获得owner里面的方法。args是对应方案参数。
Class wnerClass=owner.getClass();
Class[] argsClass=new Class[args.length];
for(int i=0,j=args.length;ij;i++){
argsClass[i] = args[i].getClass();
}
Method method = ownerClass.getMethod(methodName, argsClass);
return method.invoke(owner, args);
}
}
输出为
this is ClassB
300
outabccc
说明c调用Class方法成功。
可以看看设计模式和Invoke相关的文章,方便理解
=========================================
public class TaskProvidePropsList {
private int provide_id;
private int props_sign;
public int getProvide_id() {
return provide_id;
}
public void setProvide_id(int provide_id) {
this.provide_id = provide_id;
}
public int getProps_sign() {
return props_sign;
}
public void setProps_sign(int props_sign) {
this.props_sign = props_sign;
}
}
这是个很简单的实体。我现在想请教高手帮忙写一个invoke的实例,就是调用所有的set方法,进行赋值,然后通过所有的get方法取值,打印出值来。就要这样一个例子。分不够可以加。问题补充:
tespo 你写的是指定方法名吧?有没有方法可以自己遍历所有的方法的。然后动态执行?
最佳答案 你这个类是一个严格的JavaBean格式。。所以先可以获得属性。。然后获得读写方法。。
您可能关注的文档
- 《汇编语言》试题A.doc
- 2011-2012第一学期汇编语言A卷.doc
- 数据库期中试题.doc
- 2010_2011学年第一学期汇编语言期末试卷A.doc
- 汇编语言,led点亮.doc
- access 历年真题答案07.9.doc
- 20042005学年(下)学期《汇编语言程序设计》试卷(A卷)和答案.doc
- access 历年真题答案08.3.doc
- access题库操作题.doc
- ACCESS笔试选择题.doc
- 鹤壁山城鹤鑫化工有限责任公司“9·29”较大中毒事故调查报告.pdf
- 露天矿山边坡稳定性分析评估工作指南.doc
- 汽车先进动力系统技术发展报告(2025版).pdf
- 中国人寿财产保险股份有限公司福建省(不含厦门)商业性奶牛养殖淘汰保险条款.doc
- 1.3 美国内战 课件 2025--2026学年统编版九年级历史下册.pptx
- 4.14 法西斯国家的侵略扩张 课件 2025-2026学年统编版九年级历史下册.pptx
- 6.21 冷战后的世界格局 课件 2025---2026学年统编版九年级历史下册.pptx
- 第14课《古诗二首 绝句》-课件-2025-2026学年二年级语文下册统编版.pptx
- 19.《蜘蛛开店》--(课件)-2025-2026学年二年级语文下册统编版.pptx
- 18.《大象的耳朵》第2课时(课件)-2025-2026学年二年级语文下册统编版.pptx
原创力文档


文档评论(0)