2010-11-11 4 views
3

Каков наилучший способ хранения BitSet в приложении? Они не позволяют java.util.BitSet быть собственностью.Store BitSet в App Engine

ответ

3

BitSet - Serializable. Datastore может получить/положить Serializablejust fine.

+0

Тогда почему я получаю ошибку java.util.BitSet не поддерживается тип свойства. – Lumpy

+0

@ Lumpy: вы добавили аннотации, описанные в этой ссылке? то есть - '@Persistent (serialized =" true ")'? «BitSet» определенно находится в белом списке. – Carl

+0

Получил, спасибо. – Lumpy

2

Попробуйте EnumSet

«Специализированная реализация Набор для использования с типами перечислений. Все элементы в наборе перечислений должны исходить из одного перечислимого типа, который указан, явно или неявно, когда создается множество. Наборы перечислений представлены внутренне как битовые векторы. Это представление является чрезвычайно компактным и эффективным. Пространство и время работы этого класса должны быть достаточно хорошими, чтобы позволить его использование в качестве высококачественной, типичной альтернативы традиционным «бит-бит» флаги ". Даже массовые операции (такие как containsAll и retainAll) должны выполняться очень быстро, если указанная коллекция также является перечислением."

+0

Могу ли я легко создать BitSet из набора ENUM? – Lumpy

+1

Я не думаю, что этот ответ имеет смысл. Lumpy хочет сохранить произвольную длину 'BitSet' (насколько я могу судить) - это означает создание произвольной длины' enum', чтобы сделать 'EnumSet' для адекватного хранения своих данных, что кажется анафемой до точки enum типа. – Carl

0

java.math.BigInteger поддерживает общие операции с битами и может быть сериализован в массив байтов.