仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1001|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:JAVA反射机制猎取类和办法仓酷云

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发成绩:

  • 能够经由过程String范例的办法名调剂办法么?
  • 能够取得特定的类么?好比以后类,近邻的类,类的新实例,以后实例?
  • 多态的函数具有不异的名字、分歧的参数范例,怎样辨别呢?
  • 怎样猎取指定类的参数范例等信息?
带着这些成绩,我做了一些理论。总结以下:
谜底:Java供应反射机制,java.lang.reflect.*,能够完成包括不限于以上功效。
上面是一些经常使用的经由过程反射猎取类、挪用办法的例子。关于成员、机关器的挪用同理可得。想懂得更多,能够检察接口文档。
packagecom.taobao.tuisi;
publicclassActions{
publicvoidtempMethod(LonguserId){
System.out.println(“我是JAVA反射测试办法,我被invoke了”+userId);
}
publicvoidtemp()throwsException{

//1.取得class

//取得类确当前实例

Actionsa=this;

System.out.println(a);

//输入com.taobao.tuisi.Actions$$EnhancerByCGLIB$$dff89711@c2ccac

//取得指定类的新实例

Actionsb=Actions.class.newInstance();

System.out.println(b);

//输入com.taobao.tuisi.Actions@1e4fede

//

//经由过程范例取得类

ClassboolType=Boolean.class;

System.out.println(boolType);

//输入classjava.lang.Boolean

//

//经由过程变量取得类

StringstringExample=“”;

ClassstringType=stringExample.getClass();

System.out.println(stringType);

//输入classjava.lang.String

//

//由名字取得类

Class<?>c=Class.forName(“com.taobao.tuisi.Actions”);

System.out.println(c);

//输入classcom.taobao.tuisi.Actions

//

//2.关于method

//由函数名和参数范例失掉函数

LonguserId=9999l;

Methodmethod=Actions.class.getDeclaredMethod(“tempMethod”,userId.getClass());

System.out.println(method);

//输入publicvoidcom.taobao.tuisi.Actions.tempMethod(java.lang.Long)

//

//经由过程类、参数值挪用指定函数

Actionsactions=newActions();

Longargs[]=newLong[1];

args[0]=userId;

method.invoke(actions,args);

//输入我是JAVA反射测试办法,我被invoke了9999

}
}

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 08:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表