⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serializablemethod.java

📁 非常接近C/S操作方式的Java Ajax框架-ZK 用ZK框架使你的B/S应用程序更漂亮更易操作。 官网:www.zkoss.org
💻 JAVA
字号:
/* SerializableMethod.java{{IS_NOTE	Purpose:			Description:			History:		Wed Jun 21 17:57:05     2006, Created by tomyeh}}IS_NOTECopyright (C) 2006 Potix Corporation. All Rights Reserved.{{IS_RIGHT}}IS_RIGHT*/package org.zkoss.lang.reflect;import java.lang.reflect.Method;import java.io.Serializable;import java.io.ObjectOutputStream;import java.io.ObjectInputStream;import java.io.IOException;import org.zkoss.lang.Objects;import org.zkoss.lang.SystemException;/** * A wrapper of java.lang.reflect.Method to make it serializable. * * @author tomyeh */public class SerializableMethod implements Serializable, Cloneable {    private static final long serialVersionUID = 20060622L;	private transient Method _m;	public SerializableMethod(Method method) {		_m = method;	}	/** Returns the method being encapsulated.	 */	public final Method getMethod() {		return _m;	}	//Serializable//	//NOTE: they must be declared as private	private synchronized void writeObject(ObjectOutputStream s)	throws IOException {		s.defaultWriteObject();		if (_m == null) {			s.writeObject(null);		} else {			s.writeObject(_m.getDeclaringClass());			s.writeObject(_m.getName());			final Class[] argTypes = _m.getParameterTypes();			s.writeInt(argTypes.length);			for (int j = 0; j < argTypes.length; ++j)				s.writeObject(argTypes[j]);		}	}	private synchronized void readObject(ObjectInputStream s)	throws IOException, ClassNotFoundException {		s.defaultReadObject();		final Class cls = (Class)s.readObject();		if (cls != null) {			final String nm = (String)s.readObject();			final int sz = s.readInt();			final Class[] argTypes = new Class[sz];			for (int j = 0; j < sz; ++j)				argTypes[j] = (Class)s.readObject();			try {				_m = cls.getMethod(nm, argTypes);			} catch (NoSuchMethodException ex) {				throw new SystemException("Method not found: "+nm+" with "+Objects.toString(argTypes));			}		}	}	//-- cloneable --//	public Object clone() {		try {			return super.clone();		} catch (CloneNotSupportedException e) {			throw new InternalError();		}	}	//Object//	public int hashCode() {		return Objects.hashCode(_m);	}	public boolean equals(Object o) {		return (o instanceof SerializableMethod)			&& Objects.equals(_m, ((SerializableMethod)o)._m);	}	public String toString() {		return Objects.toString(_m);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -