entityholder.java
来自「Java mulitplayer strategy game. Adaptati」· Java 代码 · 共 73 行
JAVA
73 行
package net.sf.jawp.gf.api;
import java.io.Serializable;
/**
* Simple wrapper over entity.
* It stores entity's key and entity alone as transient value
*
* It means that after serialization/deseriaization
* there is only key left and entity's data must be "somewhere else"
*
* Use this type in communication methods to avoid network overhead
* if it is only known that instead of whole object data key is enough
* (for instance: data was already sent)
*
* @author jarek
* @version $Revision: 1.7 $
*
* @param <T> entity type for this wrapper
*/
public final class EntityHolder<T extends Entity>
implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private final long key;
private transient T entity;
public EntityHolder(final T entity)
{
this.key = entity.getKey();
this.entity = entity;
}
public T getEntity(final Resolver<T> entityResolver)
{
if (this.entity == null)
{
this.entity = entityResolver.find(getKey());
}
return this.entity;
}
public long getKey()
{
return this.key;
}
public int hashCode()
{
return (int)(this.key ^ (key >>> 32));
}
public boolean equals(final Object o)
{
if ( o == this)
{
return true;
}
return this.equals( (EntityHolder<?>)o);
}
public boolean equals(final EntityHolder<?> o)
{
return o.getKey() == this.getKey();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?