
com.alicp.jetcache.anno.method.ClassUtil Maven / Gradle / Ivy
The newest version!
/**
* Created on 13-09-09 17:20
*/
package com.alicp.jetcache.anno.method;
import org.springframework.asm.Type;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author huangli
*/
public class ClassUtil {
private static ConcurrentHashMap methodSigMap = new ConcurrentHashMap();
public static String getShortClassName(String className) {
if (className == null) {
return null;
}
String[] ss = className.split("\\.");
StringBuilder sb = new StringBuilder(className.length());
for (int i = 0; i < ss.length; i++) {
String s = ss[i];
if (i != ss.length - 1) {
sb.append(s.charAt(0)).append('.');
} else {
sb.append(s);
}
}
return sb.toString();
}
public static Class>[] getAllInterfaces(Object obj) {
Class> c = obj.getClass();
HashSet> s = new HashSet<>();
do {
Class>[] its = c.getInterfaces();
Collections.addAll(s, its);
c = c.getSuperclass();
} while (c != null);
return s.toArray(new Class>[s.size()]);
}
private static void getMethodSig(StringBuilder sb, Method m) {
sb.append(m.getName());
sb.append(Type.getType(m).getDescriptor());
}
public static String getMethodSig(Method m) {
String sig = methodSigMap.get(m);
if (sig != null) {
return sig;
} else {
StringBuilder sb = new StringBuilder();
getMethodSig(sb, m);
sig = sb.toString();
methodSigMap.put(m, sig);
return sig;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy