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

📄 multicastdelegate.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
package com.ms.lang;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Vector;import java.util.Enumeration;public class MulticastDelegate extends Delegate {private Vector list = new Vector();protected MulticastDelegate(Object o, String m, String s) {	super(o, m, s);}MulticastDelegate(Object o, Method m) {	super(o, m);}public Delegate[] getInvocationList() {	Delegate[] dels = new Delegate[list.size()];	int i = 0;	for (Enumeration e = list.elements(); e.hasMoreElements(); ) {		dels[i++] = (Delegate)e.nextElement();	}	return (dels);}public int hashCode() {	return (super.hashCode());}public boolean equals(Object o) {	if (o == this) {		return (true);	}	throw new kaffe.util.NotImplemented();}protected final void invokeHelperMulticast(Object[] args) throws Throwable {        try {		for (Enumeration e = list.elements(); e.hasMoreElements(); ) {			((Delegate)e.nextElement()).dynamicInvoke(args);		}        }        catch (InvocationTargetException e) {                throw e.getTargetException();        }}Delegate combine(Delegate a) {	MulticastDelegate mdel = new MulticastDelegate(objTarget, methodTarget);	for (Enumeration e = list.elements(); e.hasMoreElements(); ) {		mdel.list.addElement(e.nextElement());	}	if (a instanceof MulticastDelegate) {		for (Enumeration e = ((MulticastDelegate)a).list.elements(); e.hasMoreElements(); ) {			mdel.list.addElement(e.nextElement());		}	}	else {		mdel.list.addElement(a);	}	return (mdel);}Delegate remove(Delegate a) {	MulticastDelegate mdel = new MulticastDelegate(objTarget, methodTarget);	for (Enumeration e = list.elements(); e.hasMoreElements(); ) {		Object o = e.nextElement();		if (o != a) {			mdel.list.addElement(o);		}	}	return (mdel);}}

⌨️ 快捷键说明

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