in twill-core/src/main/java/org/apache/twill/internal/utils/Instances.java [87:106]
private static <T> T unsafeCreate(Class<T> clz) throws InvocationTargetException, IllegalAccessException {
T instance = (T) UNSAFE_NEW_INSTANCE.invoke(UNSAFE, clz);
for (TypeToken<?> type : TypeToken.of(clz).getTypes().classes()) {
if (Object.class.equals(type.getRawType())) {
break;
}
for (Field field : type.getRawType().getDeclaredFields()) {
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
if (!field.isAccessible()) {
field.setAccessible(true);
}
field.set(instance, Defaults.defaultValue(field.getType()));
}
}
return instance;
}