- 浏览: 86700 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
shu_jian:
太深奥了,看不太懂啊
声明式事务管理 -
hengstart:
谢谢了!在你这里看了不少东西,交个朋友,我也在上海java的! ...
mysql有种类型不支持事物 -
hengstart:
看不出来结果啊!什么都没有!
mysql有种类型不支持事物 -
whg333:
拉登的足球 写道最简单的方式
看的时机: 在人物的脚转到最左 ...
一张图分出你是用左脑还是右脑! -
whg333:
Jason(aijun) 写道
唯心主义者应该非常喜欢这 ...
一张图分出你是用左脑还是右脑!
先来一个通用的ProxyMap。如果不需要重用,这个类可以不用写。主要为了展示Proxy,delegate。
Java代码
public class ProxyMap {
protected Map map;
public ProxyMap(Map map) {
super();
this.map = map;
}
public Map getMap() {
return map;
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
return map.containsKey(key);
}
public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}
public boolean equals(Object o) {
return map.equals(o);
}
public Object get(Object key) {
return map.get(key);
}
public int hashCode() {
return map.hashCode();
}
public boolean isEmpty() {
return map.isEmpty();
}
public Set keySet() {
return map.keySet();
}
public Object put(Object arg0, Object arg1) {
return map.put(arg0, arg1);
}
public void putAll(Map arg0) {
map.putAll(arg0);
}
public Object remove(Object key) {
return map.remove(key);
}
public int size() {
return map.size();
}
public Collection values() {
return map.values();
}
}
public class ProxyMap {
protected Map map;
public ProxyMap(Map map) {
super();
this.map = map;
}
public Map getMap() {
return map;
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
return map.containsKey(key);
}
public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}
public boolean equals(Object o) {
return map.equals(o);
}
public Object get(Object key) {
return map.get(key);
}
public int hashCode() {
return map.hashCode();
}
public boolean isEmpty() {
return map.isEmpty();
}
public Set keySet() {
return map.keySet();
}
public Object put(Object arg0, Object arg1) {
return map.put(arg0, arg1);
}
public void putAll(Map arg0) {
map.putAll(arg0);
}
public Object remove(Object key) {
return map.remove(key);
}
public int size() {
return map.size();
}
public Collection values() {
return map.values();
}
}
--------------------------------
IndexMap 继承 ProxyMap。
如果没有ProxyMap这个类,那么就不用继承。
需要自己实现所有Map的delegate方法。
IndexMap的代码几乎和 fins 给出的一样(就是copy过来的)。
只是可以截获所有的Map。而不只是HashMap。
Java代码
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class IndexMap extends ProxyMap{
public IndexMap(Map map) {
super(map);
}
private List list = new ArrayList();
public Object put(Object key, Object value) {
if (!containsKey(key)){
list.add(key);
}
return super.put(key, value);
}
public Object get(int idx){
return super.get(getKey(idx));
}
public int getIndex(Object key){
return list.indexOf(key);
}
public Object getKey(int idx){
if (idx>=list.size()) return null;
return list.get(idx);
}
public void remove(int idx){
Object key=getKey(idx);
removeFromList(getIndex(key));
super.remove(key);
}
public Object remove(Object key) {
removeFromList(getIndex(key));
return super.remove(key);
}
public void clear() {
this.list = new ArrayList();
super.clear();
}
private void removeFromList(int idx){
if (idx<list.size() && idx>=0) {
list.remove(idx);
}
}
}
Java代码
public class ProxyMap {
protected Map map;
public ProxyMap(Map map) {
super();
this.map = map;
}
public Map getMap() {
return map;
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
return map.containsKey(key);
}
public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}
public boolean equals(Object o) {
return map.equals(o);
}
public Object get(Object key) {
return map.get(key);
}
public int hashCode() {
return map.hashCode();
}
public boolean isEmpty() {
return map.isEmpty();
}
public Set keySet() {
return map.keySet();
}
public Object put(Object arg0, Object arg1) {
return map.put(arg0, arg1);
}
public void putAll(Map arg0) {
map.putAll(arg0);
}
public Object remove(Object key) {
return map.remove(key);
}
public int size() {
return map.size();
}
public Collection values() {
return map.values();
}
}
public class ProxyMap {
protected Map map;
public ProxyMap(Map map) {
super();
this.map = map;
}
public Map getMap() {
return map;
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
return map.containsKey(key);
}
public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}
public boolean equals(Object o) {
return map.equals(o);
}
public Object get(Object key) {
return map.get(key);
}
public int hashCode() {
return map.hashCode();
}
public boolean isEmpty() {
return map.isEmpty();
}
public Set keySet() {
return map.keySet();
}
public Object put(Object arg0, Object arg1) {
return map.put(arg0, arg1);
}
public void putAll(Map arg0) {
map.putAll(arg0);
}
public Object remove(Object key) {
return map.remove(key);
}
public int size() {
return map.size();
}
public Collection values() {
return map.values();
}
}
--------------------------------
IndexMap 继承 ProxyMap。
如果没有ProxyMap这个类,那么就不用继承。
需要自己实现所有Map的delegate方法。
IndexMap的代码几乎和 fins 给出的一样(就是copy过来的)。
只是可以截获所有的Map。而不只是HashMap。
Java代码
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class IndexMap extends ProxyMap{
public IndexMap(Map map) {
super(map);
}
private List list = new ArrayList();
public Object put(Object key, Object value) {
if (!containsKey(key)){
list.add(key);
}
return super.put(key, value);
}
public Object get(int idx){
return super.get(getKey(idx));
}
public int getIndex(Object key){
return list.indexOf(key);
}
public Object getKey(int idx){
if (idx>=list.size()) return null;
return list.get(idx);
}
public void remove(int idx){
Object key=getKey(idx);
removeFromList(getIndex(key));
super.remove(key);
}
public Object remove(Object key) {
removeFromList(getIndex(key));
return super.remove(key);
}
public void clear() {
this.list = new ArrayList();
super.clear();
}
private void removeFromList(int idx){
if (idx<list.size() && idx>=0) {
list.remove(idx);
}
}
}
发表评论
-
java.util.ConcurrentModificationException
2012-05-15 14:15 842java.util.ConcurrentModificatio ... -
Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
2010-04-15 13:35 1275什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什 ... -
Hibernate HQL查询
2009-07-09 15:32 2079Hibernate HQL查询 参数绑 ... -
editplus 编译 运行 执行 java 类
2009-03-26 16:50 1293关键字: editplus 编译 运行 执行 java 类 ... -
Resin:解决找不到com.sun.tools.javac.Main问题
2009-03-26 14:35 5211java.lang.ClassNotFoundExceptio ... -
Maven2 安装
2009-03-26 10:25 1967Maven2 安装 Maven 是一个构建工 ... -
jar打包详解
2008-10-16 15:51 1021为什么会有这个玩意呢 ... -
关于UML 2中结构图的介绍
2008-10-13 11:42 1833关于UML 2中结构图的 ... -
在 Java 中如何进行 BASE64 编码和解码
2008-10-09 09:47 1632BASE64 编码是一种常用的字符编码,在很多地方都会用到。 ... -
几种常见的异常
2008-10-08 17:12 753今天在做项目的时候报了这样一个错,所以我整理一些常见的异常,以 ... -
用PHP和MySQL保存和输出图片
2008-10-08 16:27 1421设置数据库 我们通常在数据库中所使用的文本 ... -
小议lIOC
2008-09-27 12:50 8701.ioc定义 IoC就是Inversion of Co ... -
读取显示当前目录下的文件及目录-java io
2008-09-24 18:04 2597很简单的一个需求,要求读取当前目录下所有的文件和目录,并显示出 ... -
為什么需要內部類
2008-09-24 18:00 794為什么需要內部類?有什么好處呢?感覺不用也沒什么,我也這樣任為 ... -
ext+dwr完整的例子(包括树, 增删改查等)
2008-09-23 08:40 1785---js var UI = function(){ v ... -
声明式事务管理
2008-09-18 13:44 1626大多数Spring用户选择声 ... -
Spring中编程式事务处理(使用TransactionTemplate)
2008-09-18 11:39 4208Spring的编程式事务处理,需要使用Hibernate事务回 ... -
spring中使用编程级的事务
2008-09-18 10:56 2430使用org.springframework.transacti ... -
HibernateTemplate中HibernateCallback的事务
2008-09-18 10:42 1767目的:使用HibernateTemplate执行execute ... -
An internal error occurred during: Generating Art
2008-09-16 13:05 2784今天做项目遇到了这样一个问题:An internal erro ...
相关推荐
一个通用的PHP广告(推广投放)竞价页订单管理系统 一个通用的PHP广告(推广投放)竞价页订单管理系统 一个通用的PHP广告(推广投放)竞价页订单管理系统 一个通用的PHP广告(推广投放)竞价页订单管理系统 一个...
基于SpringBoot搭建的一个通用的OA管理系统,以车辆管理为例 基于SpringBoot搭建的一个通用的OA管理系统,以车辆管理为例 基于SpringBoot搭建的一个通用的OA管理系统,以车辆管理为例 基于SpringBoot搭建的一个通用...
Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme通用驱动 64Nvme...
基于SpringBoot搭建的一个通用的OA管理系统源码.zip基于SpringBoot搭建的一个通用的OA管理系统源码.zip基于SpringBoot搭建的一个通用的OA管理系统源码.zip基于SpringBoot搭建的一个通用的OA管理系统源码.zip基于...
设计一个通用寄存器组,满足以下要求: ①通用寄存器组中有4个16位的寄存器。 ②当复位信号reset=0时,将通用寄存器组中的4个寄存器清零。 ③通用寄存器组中有1个写入端口,当DRWr=1时,在时钟clk的上升沿将数据总线...
本文将深入探讨如何结合这两种技术实现一个通用的DAO(Data Access Object)设计模式。 首先,我们来看“泛型”。泛型是Java 5引入的新特性,它允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和...
然后我就写了一个基于此的通用脱壳机. 目前支持易语言的两种编译方式 独立编译 和非独立编译.自动识别并修复数据. 特别是独立编译支持相对来说有那么一点用处.因为如果你要Patch人家的程序.你当然希望Patch完以后...
基于Python实现的一个通用的二进制数据分析工具源码+文档说明(下载即用).zip分析任意格式的二进制数据,还能同时查看协议文档。 基于Python实现的一个通用的二进制数据分析工具源码+文档说明(下载即用).zip分析...
"子程序1"可能是指一个示例子程序,用于演示如何在易语言中使用通用型。 5. **强制转换**:在处理通用型数据时,由于通用型可以存储任意类型,因此需要进行强制转换来确保数据的安全性和准确性。易语言提供了相应的...
环境:Windows XP ...这里本人翻写一个通用的线程池类,它可以用来作为工具类处理许多多线程问题。代码注释非常详尽,一行注释一行代码。 阅读对象:非常熟悉Java的基本概念,并且熟悉命令行编写代码的人员。
1、基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统源码(适合快速迭代开发).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计...
一个通用的登录界面源代码加CSS样式,界面简洁易改,适合各种网页网站的登录和注册页面,小白的话强烈推荐。
Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme通用驱动 32Nvme...
基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...
angularjs的一个通用模板,稍微修改一下即可用作你的课程设计什么的
通用组比全局组的范围更广,它们可以跨越多个域,属于同一个目录林中的任何域。这意味着通用组可以包含不同域中的用户和联系人,提供跨域的权限分配。然而,虽然通用组可以跨域,但它们并不自动传播成员身份信息到...
本教程将详细介绍如何封装一个通用的Dialog,使用DialogFragment。 1. **DialogFragment简介** DialogFragment是Fragment的子类,它具有Fragment的所有特性,如生命周期管理、回退栈支持等。同时,它还能展示一个...
AxureUX WEB端交互原型通用组件模板库 v3 (组件列表) AxureUX WEB端交互原型通用组件模板库 v3 (组件列表) AxureUX WEB端交互原型通用组件模板库 v3 (组件列表) AxureUX WEB端交互原型通用组件模板库 v3 (组件列表) ...
MyBatis通用Mapper是MyBatis框架中的一种通用Mapper实现方式,主要提供了一些通用的方法,这些方法是以接口的形式提供的。通用Mapper的实现原理主要是通过Java反射机制和MyBatis框架的特点来实现的。 首先,通用...