【发布时间】:2015-03-30 14:46:16
【问题描述】:
我有一个多级地图要求,我正在使用 Guava Table 。更准确地说是 HashBasedTable。
由于我的代码需要对此数据集进行大量自定义处理,因此我想实现一个派生类,例如EventActionRuleTable 包含针对源的 Event - Action 对象的映射。
类似的东西
HashMap<Source , Map<Event, Action> ruleMap ;
我将上面的替换为
Table<Source, Event , Action> ruleTable = HashBasedTable.create();
但是为了保存我所有的自定义代码,我想继承 HashBasedTable 并认为它根本不可能。
因此我选择与代表一起去,即
public EventActionRule extends Table<Source, Event, Action>{
private HashBasedTable<Source, Event, Action> backup = null ;
public HashBasedTable<Source, Event, Action> getBackupTable() {
if (backupTable == null) {
backupTable = HashBasedTable.create() ;
}
return backupTable;
}
@Override
public boolean isEmpty() {
return getBackupTable().isEmpty();
}
/**
All other methods of Table interface overridden to delegate calls to backup instance
*/
....
}
这种方法正确吗?如果不是,你能列出问题吗?任何替代方法?
HashBasedTable Gwt 序列化是否兼容?我之所以问,是因为 HashBasedTable 内部使用的两个备份映射都使用 @GwtTransient 注释进行了注释。
【问题讨论】: