易截截图软件、单文件、免安装、纯绿色、仅160KB

java 动态代理


1、首先必须有个接口
package reflection;
public interface HelloWorld {
    void sayHelloWorld();
    void testHello(String hello);
}
2、接口的实现类
package reflection;
public class HelloWorldImpl implements HelloWorld {
 public void sayHelloWorld() {
  System.out.println("Hello World!");
 }
 
 public void testHello(String hello) {
  System.out.println(hello);
 }
}
3、实现动态代理类,此类必须实现接口InvocationHandler,实现洗接口的方法
invoke(Object proxy, Method method, Object[] args)
在实际使用时,第一个参数obj一般是指代理类,method是被代理的方法,args为该方法的参数数组。
package reflection;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class HelloWorldHandler implements InvocationHandler {
 // 要代理的原始对象
 private Object objOriginal;
 /**
  * 构造函数。
  * @param obj 要代理的原始对象。
  */
 public HelloWorldHandler(Object obj) {
  this.objOriginal = obj;
 }
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  Object result;
  // 方法调用之前
  doBefore();
  // 调用原始对象的方法
  result = method.invoke(this.objOriginal, args);
  // 方法调用之后
  doAfter();
  return result;
 }
 private void doBefore() {
  System.out.println("before method invoke!");
 }
 private void doAfter() {
  System.out.println("after method invoke!");
 }
}
Proxy:该类即为动态代理类,作用类实现了InvocationHandler接口的代理类,其中主要包含以下函数。
protected Proxy(InvocationHandler h):构造函数,用于给内部的h赋值。
static Class getProxyClass (ClassLoader loader, Class[] interfaces):获得一个代理类,其中loader是类装载器,interfaces是真实类所拥有的全部接口的数组。
static Object newProxyInstance(


相关文档:

如何编写健壮的java代码(转载)


这是一些相当不错的忠告!每个规则都很有分量!都是长期经验积累的总结,希望能对您有所帮助,使您编出高质量的JAVA代码。中文JAVA技术网fX
W,c6I/R!_3B b
中文JAVA技术网6o9yV+M
u+V2Nfr5vm
(1)类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所
有单词都应紧靠 ......

Java相对路径/绝对路径总结!


1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中 ......

GSON(JSON字符串转换成一个相等的Java对象)

Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
代码例子:
util.Date和sql.Date被转成长整形用于序列化传输 
public class SQLDateSer
ializer implements JsonSerializer<java.sql.Date> {
public JsonElemen ......

JAVA 解析加密ZIP

2010-03-10
最近做项目遇到了一个问题,需要将客户端到处的加密ZIP压缩包直接导入到系统中。在网上查了下关于ZIP解密的问题,发现了winzipaes这个开源项目http://code.google.com/p/winzipaes ,这个项目需要依赖bcprov-jdk14-145.jar这个开源包,两个包联合使用可以解密AES -256算法的加密密码。
因为系统使用的是JDK1.4 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号