package org.jfox.mx.util;
public class PrimitiveHelper {
public static Class getPrimitiveClass(String primitiveName){
if(primitiveName.equals(boolean.class.getName()))
return boolean.class;
if(primitiveName.equals(char.class.getName()))
return char.class;
if(primitiveName.equals(byte.class.getName()))
return byte.class;
if(primitiveName.equals(short.class.getName()))
return short.class;
if(primitiveName.equals(int.class.getName()))
return int.class;
if(primitiveName.equals(long.class.getName()))
return long.class;
if(primitiveName.equals(float.class.getName()))
return float.class;
if(primitiveName.equals(double.class.getName()))
return double.class;
return null;
}
public static Class object2PrimitiveClass(Object obj){
if(obj instanceof Boolean)
return boolean.class;
if(obj instanceof Character)
return char.class;
if(obj instanceof Byte)
return byte.class;
if(obj instanceof Short)
return short.class;
if(obj instanceof Integer)
return int.class;
if(obj instanceof Long)
return long.class;
if(obj instanceof Float)
return float.class;
if(obj instanceof Double)
return double.class;
return null;
}
public static Object createObject(String value,String className){
Object obj = value;
if(className.equals(boolean.class.getName()) || className.equals(Boolean.class.getName())){
obj = Boolean.valueOf(value);
}
else if(className.equals(char.class.getName()) || className.equals(Character.class.getName())) {
obj = new Character(value.charAt(0));
}
else if(className.equals(byte.class.getName()) || className.equals(Byte.class.getName())) {
obj = Byte.valueOf(value);
}
else if(className.equals(short.class.getName()) || className.equals(Short.class.getName())) {
obj = Short.valueOf(value);
}
else if(className.equals(int.class.getName()) || className.equals(Integer.class.getName())) {
obj = Integer.valueOf(value);
}
else if(className.equals(long.class.getName()) || className.equals(Long.class.getName())) {
obj = Long.valueOf(value);
}
else if(className.equals(float.class.getName()) || className.equals(Float.class.getName())) {
obj = Float.valueOf(value);
}
else if(className.equals(double.class.getName()) || className.equals(Double.class.getName())) {
obj = Double.valueOf(value);
}
return obj;
}
public static boolean isAssignable(Class primitiveClass, Class objClass) {
boolean assignable = false;
if (objClass == null || primitiveClass == null) {
assignable = false;
}
else if (objClass == boolean.class && primitiveClass == Boolean.class) {
assignable = true;
}
else if (objClass == byte.class && primitiveClass == Byte.class) {
assignable = true;
}
else if (objClass == char.class && primitiveClass == Character.class) {
assignable = true;
}
else if (objClass == short.class && primitiveClass == Short.class) {
assignable = true;
}
else if (objClass == int.class && primitiveClass == Integer.class) {
assignable = true;
}
else if (objClass == long.class && primitiveClass == Long.class) {
assignable = true;
}
else if (objClass == float.class && primitiveClass == Float.class) {
assignable = true;
}
else if (objClass == double.class && primitiveClass == Double.class) {
assignable = true;
}
return assignable;
}
public static boolean isPrimitiveType(String type){
if(type.equals(boolean.class.getName())
|| type.equals(char.class.getName())
|| type.equals(byte.class.getName())
|| type.equals(short.class.getName())
|| type.equals(int.class.getName())
|| type.equals(int.class.getName())
|| type.equals(float.class.getName())
|| type.equals(double.class.getName())
){
return true;
}
return false;
}
public static void main(String[] args) throws Exception {
System.out.println(PrimitiveHelper.getPrimitiveClass("int"));
System.out.println(int.class.getName());
System.out.println(int.class.equals(Integer.TYPE));
}
}