接口 PersistentDataType<P,C>

类型参数:
P - 存储在给定标签中的主要对象类型
C - 应用此标签类型时检索到的对象类型
所有已知子接口:
ListPersistentDataType<P,C>
所有已知实现类:
PersistentDataType.BooleanPersistentDataType, PersistentDataType.PrimitivePersistentDataType

public interface PersistentDataType<P,C>
此类表示一个具有泛型内容类型的枚举。它定义了自定义标签可以具有的类型。

此接口可用于创建您自己的具有不同复杂类型的自定义 PersistentDataType。这对于 UUIDTagType 等可能很有用:

 
 public class UUIDTagType implements PersistentDataType<byte[], UUID> {

         @Override
         public Class<byte[]> getPrimitiveType() {
             return byte[].class;
         }

         @Override
         public Class<UUID> getComplexType() {
             return UUID.class;
         }

         @Override
         public byte[] toPrimitive(UUID complex, PersistentDataAdapterContext context) {
             ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
             bb.putLong(complex.getMostSignificantBits());
             bb.putLong(complex.getLeastSignificantBits());
             return bb.array();
         }

         @Override
         public UUID fromPrimitive(byte[] primitive, PersistentDataAdapterContext context) {
             ByteBuffer bb = ByteBuffer.wrap(primitive);
             long firstLong = bb.getLong();
             long secondLong = bb.getLong();
             return new UUID(firstLong, secondLong);
         }
     }
任何插件拥有的此接口的实现都需要定义此接口中找到的现有原始类型之一。特别是 BOOLEAN 不是原始类型,而是便捷类型。