@Override public T create() { try { Object instance = UNSAFE.allocateInstance(type.getRawType()); Reflections.visit(instance, type, new FieldInitializer()); return (T) instance; } catch (InstantiationException e) { throw Throwables.propagate(e); } } };