
org.codehaus.jparsec.misc.Reflection Maven / Gradle / Ivy
package org.codehaus.jparsec.misc;
import java.util.HashMap;
import java.util.Map;
/**
* Common utility for working with reflection.
*
* @author Ben Yu
*/
final class Reflection {
/** Gets the class name of {@code obj} or "null" if {@code obj} is null. */
static String getClassName(Object obj) {
return (obj == null) ? "null" : obj.getClass().getName();
}
@SuppressWarnings("rawtypes")
private static final Map WRAPPERS = new HashMap();
private static void primitive(Class primitive, Class wrapper) {
WRAPPERS.put(primitive, wrapper);
}
static {
primitive(byte.class, Byte.class);
primitive(short.class, Short.class);
primitive(int.class, Integer.class);
primitive(long.class, Long.class);
primitive(boolean.class, Boolean.class);
primitive(float.class, Float.class);
primitive(double.class, Double.class);
primitive(char.class, Character.class);
primitive(void.class, Void.class);
}
static Class wrapperClass(Class type) {
@SuppressWarnings("unchecked")
Class wrapperClass = WRAPPERS.get(type);
return (wrapperClass == null) ? type : wrapperClass;
}
static boolean isInstance(Class> type, Object obj) {
return wrapperClass(type).isInstance(obj);
}
static boolean isAssignable(Class> type, Object obj) {
return obj == null ? !type.isPrimitive() : isInstance(type, obj);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy