У меня есть декодер netty, который использует GSon для преобразования JSon, исходящего из веб-клиента, в соответствующие java-объекты.
Требование:
Клиент может отправлять несвязанные классы, класс A, класс B, класс C и т.д., Но я хотел бы использовать экземпляр одиночного декодера того же в конвейере для преобразования (поскольку я использую spring для его настройки). Проблема, с которой я сталкиваюсь, заключается в том, что я должен знать объект class
перед началом работы.
public Object decode()
{
gson.fromJson(jsonString, A.class);
}
Это не может декодировать B или C. Пользователям моей библиотеки теперь нужно написать отдельные декодеры для каждого класса, а не для последующего перевода позже. Единственный способ, с помощью которого я могу это сделать, - передать имя String класса say "org.example.C" в строке JSon из веб-клиента, проанализировать его в декодере, а затем использовать Class.forName
для получения класса, Есть ли лучший способ сделать это?