Twidere-App-Android-Twitter.../twidere/src/main/java/org/mariotaku/twidere/util/TwidereTypeUtils.java

37 lines
1.0 KiB
Java

package org.mariotaku.twidere.util;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
/**
* Created by mariotaku on 16/2/15.
*/
public class TwidereTypeUtils {
private TwidereTypeUtils() {
}
public static String toSimpleName(Type type) {
final StringBuilder sb = new StringBuilder();
buildSimpleName(type, sb);
return sb.toString();
}
private static void buildSimpleName(Type type, StringBuilder sb) {
if (type instanceof Class) {
sb.append(((Class) type).getSimpleName());
} else if (type instanceof ParameterizedType) {
buildSimpleName(((ParameterizedType) type).getRawType(), sb);
sb.append("<");
final Type[] args = ((ParameterizedType) type).getActualTypeArguments();
for (int i = 0; i < args.length; i++) {
if (i != 0) {
sb.append(",");
}
buildSimpleName(args[i], sb);
}
sb.append(">");
}
}
}