- 浏览: 233306 次
- 性别:
- 来自: 我也来自火星?
文章分类
最新评论
-
chengUFO:
Test tes = c.newInstance();执行以上 ...
自定义ClassLoader -
lliiqiang:
资料太少了,伪造客户端和事先标准以外数据为攻击,其它的是bug ...
Openlaszlo调用JavaRPC和JAVA类通信 -
tianshaojie:
楼主,为什么我安装你的方法建立工程后,访问就出错,我用的是ta ...
Tapestry4入门 -
panshunchang:
发帖过程这么辛苦,还要回答一大堆问题,受不了了
[常用代码整理]JAVA反射 -
活靶子:
生成一个join的SQL语句
SELECT items.* F ...
Better looking URLs with friendly_id
public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
通过反射调用setName方法为name赋值:
public class Main { public static void main(String[] args) { try { Class clazz = Class.forName("test.User"); Method mtd = clazz.getMethod("setName", new Class[]{String.class}); Object obj = (Object) clazz.newInstance(); mtd.invoke(obj,new Object[]{"Jacky"}); System.out.println(((User)obj).getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } }
********************************************************************
import java.lang.reflect.Array; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * Java Reflection Cookbook * * @author Michael Lee * @since 2006-8-23 * @version 0.1a */ public class Reflection { /** * 得到某个对象的公共属性 * * @param owner, fieldName * @return 该属性对象 * @throws Exception * */ public Object getProperty(Object owner, String fieldName) throws Exception { Class ownerClass = owner.getClass(); Field field = ownerClass.getField(fieldName); Object property = field.get(owner); return property; } /** * 得到某类的静态公共属性 * * @param className 类名 * @param fieldName 属性名 * @return 该属性对象 * @throws Exception */ public Object getStaticProperty(String className, String fieldName) throws Exception { Class ownerClass = Class.forName(className); Field field = ownerClass.getField(fieldName); Object property = field.get(ownerClass); return property; } /** * 执行某对象方法 * * @param owner * 对象 * @param methodName * 方法名 * @param args * 参数 * @return 方法返回值 * @throws Exception */ public Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception { Class ownerClass = owner.getClass(); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method = ownerClass.getMethod(methodName, argsClass); return method.invoke(owner, args); } /** * 执行某类的静态方法 * * @param className * 类名 * @param methodName * 方法名 * @param args * 参数数组 * @return 执行方法返回的结果 * @throws Exception */ public Object invokeStaticMethod(String className, String methodName, Object[] args) throws Exception { Class ownerClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method = ownerClass.getMethod(methodName, argsClass); return method.invoke(null, args); } /** * 新建实例 * * @param className * 类名 * @param args * 构造函数的参数 * @return 新建的实例 * @throws Exception */ public Object newInstance(String className, Object[] args) throws Exception { Class newoneClass = Class.forName(className); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Constructor cons = newoneClass.getConstructor(argsClass); return cons.newInstance(args); } /** * 是不是某个类的实例 * @param obj 实例 * @param cls 类 * @return 如果 obj 是此类的实例,则返回 true */ public boolean isInstance(Object obj, Class cls) { return cls.isInstance(obj); } /** * 得到数组中的某个元素 * @param array 数组 * @param index 索引 * @return 返回指定数组对象中索引组件的值 */ public Object getByArray(Object array, int index) { return Array.get(array,index); } }
发表评论
-
vim补全
2009-10-13 16:42 0引用VIM自动不齐不需要特殊配置,只需要打开 filetype ... -
一次小项目的思考
2009-08-20 23:11 3450最近的一个项目,四个 ... -
IntelliJ Idea插件Jetty Integration恢复开发
2009-08-19 14:34 3582今天在je上面看到了一条新闻 Google 选择 Jetty, ... -
PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
2009-07-30 14:05 2259在用PowerDesigner时.常常在NAME或Commen ... -
使用VisualSVN Server构建自己的版本库
2008-12-16 16:13 1705VisualSVN Server是用于Subversion管理 ... -
在laszlo方法中使用参数
2006-03-22 14:56 963<canvas debug="true&quo ... -
openlasz入门---openlaszlo环境的建立
2006-04-11 22:09 1698关于openlaszlo的介绍网站上面也蛮多了,所以,在这里也 ... -
Openlaszlo调用JavaRPC和JAVA类通信
2006-04-20 10:31 1836JavaRPC允许Laszlo客户端远程调用服务端的JAVA类 ... -
使用 JavaMail 收发邮件,解决中文附件问题
2007-02-07 11:22 3845几天来一直在开发一个项目,其中一部分需要用 JavaMail ... -
FCKEditor使用说明
2007-02-17 13:53 14971. FCKeditor 介绍 FCKeditor 这个开源的 ... -
一个不错的开源数据库H2
2007-02-17 14:10 1496H2是一个采用Java开发开源的嵌入式SQL数据库。它支持集群 ... -
JAVA获取系统当前的用户
2007-03-02 17:15 6730public class Test { ... -
FCKeditor插件开发
2007-03-23 21:45 2959FCKeditor插件开发建立 ... -
Idea8试用
2008-03-23 21:56 1666刚刚在新闻频道看到关于Idea的新闻,对它的javascrip ... -
HtmlUnit测试页面
2008-03-02 22:29 9884HtmlUnit简介:引自 www.open-open.com ... -
java的数据结构
2007-11-11 19:04 1490线性表,链表,哈希表是常用的数据结构,在进行Java开发时,J ... -
P6SPY监控数据库性能
2007-11-11 18:51 2929P6SPY监控数据库性能 P6SPY通过对JDBC API的 ... -
Idea7.0注册机
2007-10-20 22:55 3231Idea7.0注册机 -
[转]普元JS验证
2007-09-16 22:25 1684* -------------------------- ... -
Apache和Subversion搭建版本控制环境
2007-08-03 23:40 15331. 安装Apache2.0.59(Apache 2.2.4和 ...
相关推荐
"Java常用代码整理"这个主题涵盖了Java开发中的诸多常见技术点和实用代码片段,旨在帮助开发者提升工作效率。以下是对这些知识点的详细阐述: 1. **基础语法**:Java的基础语法包括数据类型(如整型、浮点型、字符...
以下是一些基于Java常用代码的知识点: 1. **异常处理**:Java通过`try-catch-finally`结构来处理程序运行时可能出现的错误。异常类通常继承自`Exception`,如`IOException`, `NullPointerException`等。程序员应该...
整理的Java反射的常用的一些方式,采用xmind的形式整理出来。希望有能够用到的。将java代码的各个组成部分封装为其他对象,可以在程序运行过程中操作这些对象,这就是java的反射机制;
"java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...
6. **反射**:Java反射允许在运行时检查类的信息,创建并操作类的对象,这对于动态加载类、调用私有方法或访问私有字段非常有用。 7. **泛型**:泛型提高了代码的类型安全,允许在类、接口和方法中使用类型参数,...
标题 "2011最新整理java经典代码.zip" 暗示这是一份包含Java编程语言的经典代码集合,可能是一个文档或多个文件的压缩包,其中的代码示例旨在展示Java编程的最佳实践、常见问题解决方案或者流行算法。描述中再次强调...
7. **反射API**:Java反射允许在运行时动态访问和修改类的信息,包括构造方法、字段和方法。它是许多高级功能如插件系统、序列化和元数据处理的基础。 8. **注解与元编程**:注解是Java中的一种元编程技术,用于在...
本压缩包"java_常用jar包整理.rar"显然是一份集合了Java开发中常用库的资源,可以帮助开发者快速搭建项目环境或解决特定功能需求。以下将详细解析这些常见的jar包及其在Java开发中的作用。 1. **Apache Commons**: ...
"Java常用代码大全.7z"这个压缩包很可能是为了帮助开发者收集和整理了一系列常见的Java编程代码片段,以便在开发过程中快速参考和使用。文档中的内容可能涵盖了各种Java编程的基础到进阶知识点。 在Java编程中,...
7. **反射与注解**:反射机制使得在运行时可以动态地获取类的信息并操作类的对象,而注解提供了元数据的功能,增强了代码的可读性和自解释性。 8. **设计模式**:了解并能应用常见的设计模式,如单例、工厂、观察者...
8. **反射**:`java.lang.reflect`包中的类和接口提供了对运行时类信息的访问,如Class、Constructor、Method和Field等,可以动态地创建对象、调用方法、访问字段。 9. **枚举**:Java枚举是预定义常量的一种类型,...
finally 中的代码一定会执行吗? 如何使用 try-with-resources 代替try-catch-finally? I/O 什么是序列化?什么是反序列化? Java 序列化中如果有些字段不想进行序列化,怎么办? 获取用键盘输入常用的两种方法 Java ...
【Java程序员高手文章集+(PDF)源码整理】这一资源主要针对的是Java编程语言的学习与实践,特别是对于希望成为Java编程高手的程序员。这个压缩包包含了一整套精选的Java技术文章,以及相关的源码整理,是提升Java技能...
8. **反射机制**:Java反射机制允许在运行时检查类、接口、字段和方法的信息,甚至可以动态调用方法和访问私有属性。这对于创建灵活和动态的应用程序非常有用。 9. **JVM内存模型**:理解Java虚拟机(JVM)的工作...
在Java编程语言中,开发者经常会遇到各种...以上只是部分知识点,实际的"java常用代码方法"文件中可能包含更多实用技巧和示例。通过学习和实践这些方法,开发者能够更好地应对日常开发中的挑战,提高代码质量和效率。
12. **反射机制**:反射允许在运行时检查类的信息,创建和调用对象,是Java动态性的重要体现。 13. **泛型**:泛型提高了代码的类型安全,避免了强制类型转换,并提供了一种类型参数化的方法。 14. **枚举**:Java...
7. **反射**:Java反射机制允许我们在运行时动态地获取类的信息并操作类的对象,是实现元编程的重要手段。 8. **JVM**:Java虚拟机的理解,包括内存管理(堆、栈、方法区)、垃圾收集机制、类加载器等,对于优化...
### Java基础知识点整理 #### 第一章 搭建开发环境 **1.1 配置Java环境** 在配置Java开发环境之前,首先需要下载并安装JDK(Java Development Kit)。JDK是Java语言的核心组件,包含了Java运行时环境(JRE)及编译...
2. **Java进阶**:涉及多线程、网络编程、I/O流、反射、JVM优化等,有助于解决复杂问题。 3. **Java框架**:Spring、MyBatis、Hibernate等,是企业级开发中常用的工具,掌握它们可以提高开发效率。 4. **Java最佳...