Проверка объекта со свойствами всего типа String, проверка того, что они смогут быть проанализированы с правильным типом данных - PullRequest
0 голосов
/ 22 октября 2019

У меня есть объект, который заполняется непосредственно из файла Excel, поэтому каждое свойство имеет тип String. Затем я сопоставляю это свойство с реальной сущностью, в которой установлены все правильные типы данных с использованием синтаксического анализа с try catch. Например:

InputEntity:

public class ProductInput {
   String name;  
   String color;  
   String price;  
   String date;
}

ActualEntity:

public class Product {
   String name;  
   String color;  
   Double price;  
   Date date;
}

До фактического сопоставления Iхотел бы регистрировать любые ошибки в базе данных, используя созданный мной класс Error.

Конечная цель состоит в том, чтобы убедиться, что каждое значение, полученное из InputEntity, не является нулевым или пустым и имеет правильный тип (может бытьустановить в Actual Entity без каких-либо ошибок). Я хочу использовать отражение, чтобы пройтись по полям класса Product и найти соответствующее поле в классе ProductInput. Затем проверьте его значение с помощью правильной функции синтаксического анализа, чтобы убедиться, что она в конечном итоге сможет быть установлена ​​в сущности Product. Если есть ошибка, я собираюсь создать запись об ошибке, которая включает имя свойства, которое не удалось, и сохранить его в базе данных, сообщая, какое поле ввода имеет проблему.

Является ли отражение правильным способом решения этой проблемы? Я хочу, чтобы функция была достаточно универсальной, чтобы обрабатывать любые классы в качестве входных и фактических, предполагая, что свойства входной сущности всегда будут строковыми, а имена свойств будут совпадать.

Я думал где-то вроде:

public validateFields(Class<T> inputClass, Class<T> destinationClass) {
    Field[] inputFields = inputClass.getDeclaredFields();
    Field[] destinationFields = destinationClass.getDeclaredFields();

    for (Field field: destinationFields) {
        // Check for same field in inputClass
        // If it exists confirm value of field is not null or empty
        // Additionally confirm the value of field can be parsed to the type of the destinationField
        // Create error entity with property name if there is a problem
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...