2012-04-07 2 views
0

У меня есть определенные значения для столбцов, которые часто необходимо хранить в БД. Раньше я кэшировал эти значения как поля классов static final byte[], но, к сожалению, byte[] не позволяет упростить сравнение сравнений (чтобы проверить, являются ли другие элементы массива байтов такими же, как этот), таким образом, я думаю об использовании полей класса , me для более простых сравнений равенства (моей базе данных в любом случае требуется преобразовать все значения в ByteBuffer для записи).ByteBuffer как статические конечные поля внутри классов

Теперь, когда я новичок в использовании ByteBuffer, я просто хотел спросить, есть ли какие-либо проблемы с несколькими полями (< 100) static final ByteBuffer в моих классах, каждый из которых содержит байт [] длины 2?

+5

Почему бы просто не использовать байт [], а затем 'java.util.Arrays.equals (byte [] a, byte [] b)'? –

+0

Я немного смущен вопросом: почему ваши кешированные байты должны быть 'static'? –

+0

@HovercraftFullOfEels: На самом деле я использую API, который выполняет сравнение равенства, поэтому я не могу заставить его работать –

ответ

0

О каких проблемах вы беспокоитесь? Буферы не являются потокобезопасными ... но неясно, каковы ваши потребности в использовании, чтобы это могло быть или не быть проблемой. Исходный код ByteBuffer (и всех буферов) доступен для вас, чтобы посмотреть .. В конце дня это final byte[] с сахаром сверху.

+0

Мне нужны они для целей только для чтения. –