### Question:
Utils { public static <T> Class<T> getTypeClassFromParadigm(final RxBus.Callback<T> callback) { if (callback == null) return null; Type[] genericInterfaces = callback.getClass().getGenericInterfaces(); Type type; if (genericInterfaces.length == 1) { type = genericInterfaces[0]; } else { type = callback.getClass().getGenericSuperclass(); } type = ((ParameterizedType) type).getActualTypeArguments()[0]; while (type instanceof ParameterizedType) { type = ((ParameterizedType) type).getRawType(); } String className = type.toString(); if (className.startsWith("class ")) { className = className.substring(6); } else if (className.startsWith("interface ")) { className = className.substring(10); } try { return (Class<T>) Class.forName(className); } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } private  Utils(); static boolean equals(Object o1, Object o2); static void requireNonNull(final Object... objects); static Class<T> getTypeClassFromParadigm(final RxBus.Callback<T> callback); static Class getClassFromObject(final Object obj); static void logW(String msg); static void logE(String msg);  }### Answer:
@Test public void getClassFromCallback() { Class<RxBus.Callback> interfaceName0 = Utils.getTypeClassFromParadigm(new RxBus.Callback<RxBus.Callback>() { @Override public void onEvent(RxBus.Callback strings) { } }); System.out.println(interfaceName0); }