如何检查是否为顶级类



使用class类型的对象,如何检查它是否为顶级类/常规对象类?

上下文:我正在转换对象元数据到json结构,目前我的代码看起来像

JsonElement toJson(Type type) {
if (type == String.class) {
...
} else if (...) { //more primitives
...
} else if (type instanceof ParametrizedType) {
...
} else if (type instanceof Class) {
Class clazz = (Class) type;
if (clazz.isEnum()) {
....
}
// probably it's an object
}
}

您可以调用getSuperclass()方法并检查结果是否为null:

返回表示这个类所表示的实体(类、接口、基本类型或void)的超类的Class。如果这个类代表Object类、接口、基本类型或void,则返回null. 如果此对象表示一个数组类,则返回表示object类的class对象。

顺便说一下不要重新发明轮子…如果您需要将元数据转换为json,请使用json转换器库.以faster jackson为例,你可以这样做:

// Here object is any object and json string equivalent of this object
String json = new ObjectMapper().writeValueAsString(object);

相关内容

  • 没有找到相关文章

最新更新