3.2.3 原始类型与 forName

无法用 forName 方法获取原始类型的 class 对象,如下代码将抛出 ClassNotFoundException 异常:

Class.forName(char.class.getName());

至于为什么这么设计,原因并不清楚。如果需要让 forName 也能处理原始类型,则可以自己实现一个工具方法,在该方法中 获取 ClassNotFoundException 然后检查要加载的原始类型名字,直接返回对应的 class 对象,如下:

Class<?> cls = null;
try {
    cls = Class.forName(char.class.getName());
} catch (ClassNotFoundException e) {
    switch (e.getMessage()) {
    case "char":
        cls = char.class;
      break;
  ...
    default:
        break;
    }
}

results matching ""

    No results matching ""