public static MSimpleType tryForClass(Class<?> cls) { if(cls.isEnum()){ Field field = Reflection.findField(cls, "value"); if(null != field) { return tryForClass(field.getType()); }else{ return tryForClass(String.class); } } for(MSimpleType t : all()){ if(t.getJavaType().equals(cls)){ return t; } } for(MSimpleType t : all()){ for(Class<?> javaType : t.getJavaTypes()){ if(javaType.equals(cls)){ return t; } } } return null; }