После некоторых поисков я пришел к выводу, что
- это невозможно (или может быть, но это будет слишком сложно)
- , и это потому, что это не способ использовать Набор данных
Сначала я считал набор данных супер, более обобщенной c версией СДР. Но это не так. На самом деле, он менее универсален c по отношению к типу, потому что тип, хранящийся в наборе данных, должен быть «плоским» или «сплющенным».
Традиционные Pojo имеют либо плоскую структуру (каждое поле имеет значение тип, который может быть представлен одним столбцом) или может быть сведен, когда поля имеют тип Pojo. С другой стороны, не существует тривиального способа «сгладить» тип, такой как Try, который по сути является либо каким-либо типом (в вопросе MyPojo), либо исключением.
И этот вывод также применим ко всем -pojo тип, такой как интерфейсы, которые могут иметь несколько реализаций. Очевидно, это приводит к вопросу: как насчет классов, которые не являются pojo, например. потому что это содержит поле Try или тип интерфейса. Вероятно, что Encoders.bean
потерпит неудачу во время выполнения. Так много для безопасности типов ...
В заключение, чтобы решить мою проблему, состоящую в отслеживании неисправных элементов, я думаю, что я go добавлю столбец "error". Или что-то типа того.