Если вы используете Grail's
Framework, просто разрешить ленивое исключение инициализации с помощью ключевого слова Lazy
в определенном поле в классе домена.
Пример:
class Book {
static belongsTo = [author: Author]
static mapping = {
author lazy: false
}
}
Найти дополнительную информацию здесь
Байт имеет 8 битов, что означает, что вы можете иметь максимальное значение 0xff в качестве значения.
Но Java использует подписанный байт, что означает, что msb зарезервирован для подписанного бита. Это оставляет вам только 7 битов для вашего значения, поэтому вы можете хранить максимум 0x7f в байтовой переменной. Любое число больше 0x07f приведет к переполнению.
Попробуйте использовать массив int. Поскольку int использует 4 байта (32 бита), следовательно, всегда будет место для 8 битов.
использовать byte [] для чтения из потока, а затем скопировать содержимое в int [], использовать int intArr[i] = byteArr[i] & 0xFF;
для i-го значения из байта [], чтобы избежать отрицательных чисел из-за переполнения байтов