У меня есть JSONDeserializer так:Как использовать flexjson TypeLocator исключение исключения по отсутствующему значению?
if (json != null)
{
response = new JSONDeserializer<EnvelopeBuilder>().use(null, EnvelopeBuilder.class)
// Target
.use("header.targetIdentifier", EnvelopeJsonCodec.locator)
// Source
.use("header.sourceIdentifier", EnvelopeJsonCodec.locator)
// Do it
.deserialize(json);
EnvelopeJsonCodec.logger.debug(new StringBuffer("Builder: ").append(response).toString());
}
и опирается на тип локатора как этот:
private static final TypeLocator<String> locator = new TypeLocator<String>("msg-type")
// Request/Response
.add("TARGETED_MESSAGE", ServiceIdentifier.class)
// Publish/Subscribe
.add("PUBLISH", PublishChannel.class);
Но я понимаю, что так как клиенты не обязательно под моим контролем, они могут typo msg-type, и я получу нулевой объект впоследствии.
Я могу проверить для нулевого объекта позже, но для тех, кто идет позади меня, не будет очевидно, что причина, по которой объект имеет значение null, состоит в том, что msg-type был неправильным.
Как я могу заставить TypeLocator генерировать исключение, если тип msg не подходит?