Java Naming - считыватель / запись байтового буфера или поток ввода / вывода? - PullRequest
0 голосов
/ 13 сентября 2018

Просматривая пару разных проектов, я вижу два разных наименования для одних и тех же предметов.

Какой из них правильный / неправильный или более универсально понятен по сравнению с другим?

Проект 1:

//reading
byte[] data;
InputStream is = new InputStream(data);
int value = is.getUnsignedByte();

//writing
OutputStream os = new OutputStream(16); //arg0 = capacity (not revelant here)
os.writeByte(value);

Проект 2:

//reading
byte[] data;
ByteBufReader reader = new ByteBufReader(data);
int value = reader.getUnsigned(DataType.BYTE, DataOrder.REGULAR);

//writing
ByteBufBuilder builder = new ByteBufBuilder(16); //arg0 = capacity (not revelant here)
builder.put(DataType.BYTE, DataOrder.REGULAR, value);

1 Ответ

0 голосов
/ 13 сентября 2018

Ни один из классов не является классом в библиотеке классов Java SE.

  • Нет класса ByteBufReader.
  • Существует класс InputStream, но его APIнесовместимо с тем, как ваш код использует его, некоторые этот класс должен быть другим.

Что является более правильным?Это действительно зависит от того, что делают настоящие классы, а вы не показали нам классы.

Однако использование имени InputStream является ошибкой, независимо от ее «правильности».Это плохая идея, чтобы выбрать имя класса, которое совпадает с общим именем класса.Это плохо для читабельности.И в этом случае в библиотеке классов Java 8 есть три существующих InputStream класса ...

Но, честно говоря, похоже, что код, который вы просматриваете, должениспользовать существующие (стандартные) ByteArrayInputStream и ByteArrayOutputStream классы.

...