Проверка объекта - PullRequest
       19

Проверка объекта

0 голосов
/ 25 марта 2009

У меня есть объект, который мне нужно проверить. Этот объект имеет свойства, которые не могут быть нулевыми, строки, которые не могут превышать заданный размер и строки даты, которые мне нужно проверить на правильность формата.

Как бы вы провели эту проверку. Я не хочу обойти весь объект, я ищу что-то более динамичное

EDIT:

Этот объект будет использоваться при вводе веб-сервисов, поэтому любая проверка правильности установки будет бесполезной, также я не знаю, как система будет вести себя с добавленной зависимостью любой системы, основанной на аннотациях

Я ищу нестандартное решение (да, я знаю, заново изобретать колесо)

Ответы [ 6 ]

1 голос
/ 25 марта 2009

Кажется, вы хотите, чтобы объект был проверен на стороне сервера веб-службы. Если да, то ответ, который я предлагаю, может относиться к вашей ситуации.

Как вы уже, без сомнения, видели, есть несколько способов проверки полей в объекте. Но вы знаете, что нужно сделать: проверьте каждое поле, чтобы увидеть, является ли его значение действительным. Здесь нет магии: вы просто проверяете поля.

Если вы хотите сохранить свой код проверки в одном месте, вы можете создать одну XML-схему, содержащую вашу логику проверки, сгенерировать из нее свой класс и проверить объекты, которые вы получаете по сети, используя схему в качестве ссылки. Это облегчает поддержку вашего кода проверки и вашего класса: вы просто обновляете схему и заново генерируете класс. (Я бы даже не держал класс в управлении исходным кодом. Просто сгенерируйте его перед компиляцией кода. Это гарантирует, что ваш класс всегда синхронизирован с вашей схемой.) Я уверен, что для этого есть библиотеки на Java (JAXB возможно?), но я не работал с Java в течение многих лет. Это очень обычная вещь для многих языков.

1 голос
/ 25 марта 2009

Базовая проверка для веб-службы выполняется на уровне WSDL / XSD.

1 голос
/ 25 марта 2009

Посмотрите на Apache Commons Validator

1 голос
/ 25 марта 2009
1 голос
/ 25 марта 2009

Без точного сценария я могу порекомендовать вам использовать методы установки объекта (вы сделали сделали поля приватными, верно?) Для проверки каждого изменения значений. установщики строк могут вызывать проверяющий длину код, установщики даты могут вызывать проверяющий формат код и т. д.

Надеюсь, это поможет,

Ювал = 8 -)

0 голосов
/ 25 марта 2009

Предложите выполнить проверку перед установкой свойств объекта. Например, если у вас есть свойство int, которое вы анализируете из строки, вам нужно будет проверить наличие нулевой, пустой строки, числа и т. Д., Прежде чем даже устанавливать его. В противном случае вы все равно столкнетесь с проблемами типа. И, если вы хотите отобразить ошибочное значение обратно пользователю, вам нужно сохранить исходную строку.

Если это веб-приложение, то существует множество платформ, которые выполнят эту часть за вас, а затем инициализируют ваш объект с уже проверенными и безопасными типами значениями. На ум приходят Struts или Spring-MVC, но я не веб-разработчик. Они используют какую-то конфигурацию xml, которая описывает ваш объект и связанную проверку, которую вы также можете расширить. Если это не веб-страница, то они могут немного помешать, поскольку они захотят обрабатывать ошибки и отображать страницы ошибок непосредственно для ваших пользователей.

Для чего-то чуть ниже попробуйте Apache Commons Validator .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...