我有一个ArrayList作为对象(从反射),并制作了自己的类,该类从它扩展(ArrayListMonitor),该类每次在arraylist删除/添加项时都调用一个函数。但是然后我得到了:java.util.ArrayList无法强制转换为ArrayListMonitor
我在加载jar并从中创建服务器时需要监视arraylist,该服务器具有我需要监视的client字段。
最佳答案
如果ArrayList
不是实例ArrayListMonitor
的实例,则无法使用:
ArrayList<String> a = new ArrayList<String>();
ArrayListMonitor<String> am = (ArrayListMonitor<String>) a; // must throw ClassCastException
如果要监视阵列列表,则有以下几种选择:
编写类似于
new ArrayListMonitor(a);
的委托,并为ArrayList
中的所有相关方法创建委托使用dynamic proxy监视ArrayList的行为
使用其他技术,例如AOP