Можно ли использовать символы подстановки или пути общего доступа в AWS API Gateway

As of Gson 2.3.1.

Независимо от того, что говорит документация Gson, если ваш класс не имеет конструктора no-args, и вы не зарегистрировали никаких объектов InstanceCreater, то это создаст объект ObjectConstructor (который строит ваш объект) с помощью UnsafeAllocator, который использует Reflection для получения метода allocateInstance класса sun.misc.Unsafe для создания экземпляра вашего класса.

Этот Unsafe класс обходит отсутствие конструктора no-args и имеет много других опасных применений . allocateInstance states

Выделить экземпляр, но не запускать какой-либо конструктор. Инициализирует класс, если он еще не был.

blockquote>

Так что на самом деле он не нужен конструктор и обойдет ваш два конструктора аргументов. См. Некоторые примеры здесь .

Если у вас есть конструктор no-args, Gson будет использовать ObjectConstructor, который использует это значение по умолчанию Constructor, вызывая

yourClassType.getDeclaredConstructor(); // ie. empty, no-args

Мои 2 цента: следуйте тому, что говорит Gson, и создайте свои классы с помощью конструктора no-arg или зарегистрируйте InstanceCreator. Вы можете оказаться в плохом положении, используя Unsafe.

13
задан David 13 June 2017 в 19:46
поделиться