Общий интерфейс Java для различных необработанных типов

Есть несколько довольно распространенных классов, таких как ResultSet или JsonObject и так далее. Такие классы используют такие функции, как getInt, getString, setInt, setString для получения или установки необработанных значений типа в/из объекта.

Мне интересно, есть ли общий интерфейс, который мог бы обрабатывать такой тип, возможно, в таком конструкторе:

public PoJo(IRawTypeInterface src)
{
   this.intField = src.getInt("nameOfIntStuff");
   this.strField = src.getString("nameOfStrStuff"); 
}

Если бы ResultSet и JsonObject реализовали бы такой интерфейс, можно было бы создать такой класс PoJo из Recordset или JsonObject.

То, что я хочу знать, это...

  • Есть ли уже такой Интерфейс, а я просто не знал?
  • Я или планировал добавить такой интерфейс в java lib?
  • Что вы думаете об этом?

Спасибо


person RSM_Tools    schedule 16.09.2020    source источник
comment
Нам нужно знать, что вы пытаетесь сделать (бизнес-логика) и что вы уже пробовали. Если бы у вас была возможность обновлять исходные классы, вы могли бы добавить интерфейс, который это делает. Однако для стандартной библиотеки Java я не думаю, что это будет вариант.   -  person Omar Abdel Bari    schedule 16.09.2020
comment
На самом деле вчера был действительно хороший комментарий об этом, но сейчас он все равно удален. Это набор не переоценивайте идею. Я немного переосмыслил это, и да, это может быть не обязательно полезно для других.   -  person RSM_Tools    schedule 17.09.2020


Ответы (1)


Версия отношений SQL и однокорневые деревья JSON - это очень разные модели и разные подходы к примитивным типам (даже игнорирование исключений). Общего мало.

Вам лучше использовать типы значений, не зависящие от представлений JSON и SQL. Я не могу не подчеркнуть, насколько важно управление зависимостями. Поэтому используйте преобразователи объектов в той или иной форме, которые берут значения по умолчанию из типа значения, но также позволяют настраивать представление.

Ваш конструктор pojo должен быть простым Pojo(int nameOfIntStuff, String nameOfStrStuff), что станет еще проще, когда у нас наконец появятся записи (для [поверхностных] неизменяемых значений). Адаптация к внешним представлениям должна быть внешней по отношению к классу.

person Tom Hawtin - tackline    schedule 19.09.2020