仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 980|回复: 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前途未卜。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-21 07:50:04 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
只想知道 该用户已被删除
板凳
发表于 2015-1-30 12:26:17 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
变相怪杰 该用户已被删除
地板
发表于 2015-2-6 11:28:47 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
飘灵儿 该用户已被删除
5#
发表于 2015-2-6 20:01:28 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
分手快乐 该用户已被删除
6#
发表于 2015-2-8 03:36:39 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
小妖女 该用户已被删除
7#
发表于 2015-2-21 20:51:34 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
小女巫 该用户已被删除
8#
发表于 2015-2-26 00:36:48 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
9#
发表于 2015-3-6 21:00:36 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
活着的死人 该用户已被删除
10#
发表于 2015-3-9 21:34:08 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
山那边是海 该用户已被删除
11#
发表于 2015-3-11 19:00:52 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
蒙在股里 该用户已被删除
12#
发表于 2015-3-12 16:18:52 | 只看该作者
是一种为 Internet发展的计算机语言
小魔女 该用户已被删除
13#
发表于 2015-3-12 16:34:22 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
admin 该用户已被删除
14#
发表于 2015-3-16 11:52:37 | 只看该作者
是一种为 Internet发展的计算机语言
金色的骷髅 该用户已被删除
15#
发表于 2015-3-22 22:31:03 | 只看该作者
是一种突破用户端机器环境和CPU
谁可相欹 该用户已被删除
16#
发表于 2015-4-11 07:10:05 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
深爱那片海 该用户已被删除
17#
发表于 2015-4-14 05:42:26 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
海妖 该用户已被删除
18#
发表于 2015-4-24 19:31:04 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
冷月葬花魂 该用户已被删除
19#
发表于 2015-5-3 05:51:14 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 11:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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