Class UnsafeAllocator

java.lang.Object
com.google.gson.internal.UnsafeAllocator

public abstract class UnsafeAllocator extends Object
Do sneaky things to allocate objects without invoking their constructors.
  • Constructor Details

    • UnsafeAllocator

      public UnsafeAllocator()
  • Method Details

    • newInstance

      public abstract <T> T newInstance(Class<T> c) throws Exception
      Throws:
      Exception
    • checkInstantiable

      static String checkInstantiable(Class<?> c)
      Check if the class can be instantiated by Unsafe allocator. If the instance has interface or abstract modifiers return an exception message.
      Parameters:
      c - instance of the class to be checked
      Returns:
      if instantiable null, else a non-null exception message
    • assertInstantiable

      private static void assertInstantiable(Class<?> c)
      Asserts that the class is instantiable. This check should have already occurred in ConstructorConstructor; this check here acts as safeguard since trying to use Unsafe for non-instantiable classes might crash the JVM on some devices.
    • create

      public static UnsafeAllocator create()