Class.forName(String name)方法到底如何使用???? Class yourClass = Class.forName("java.lang.String");或者Class yourClass = Class.forName("String");都会报错:ClassNotFoundException 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Object c =(Object) Class.forName("java.lang.String").newInstance(); 恩。或者抛异常public static void main(String[] args) throws ClassNotFoundException { Class c = Class.forName("java.lang.String"); } 参考javadoc类java.lang.Classpublic static Class<?> forName(String className) throws ClassNotFoundException返回与带有给定字符串名的类或接口相关联的 Class 对象。调用此方法等效于: Class.forName(className, true, currentLoader) 其中 currentLoader 表示当前类的定义类加载器。 例如,以下代码片段返回命名为 java.lang.Thread 的类的运行时 Class 描述符。 Class t = Class.forName("java.lang.Thread") 调用 forName("X") 将导致命名为 X 的类被初始化。 参数:className - 所需类的完全限定名。 返回:具有指定名的类的 Class 对象。 抛出: LinkageError - 如果链接失败 ExceptionInInitializerError - 如果此方法所激发的初始化失败 ClassNotFoundException - 如果无法定位该类 额,我的可以啊,不过要放在try..catch里面 try { Class yourClass = Class.forName("java.lang.String"); } catch(Exception e) { e.printStackTrace(); } Class yourClass = Class.forName("String");是不合适的Class.forName(“完整的类名”) Class yourClass = Class.forName("java.lang.String");如果你这样获取一个String类的class对象,是毫无意义的Class.forName的用处是在运行过程中才能决定使用哪个类来创建实例。你的问题的原因是:必须使用带package的完整类名 Class.forName(String)是获取某种类型的一个Class引用,每个类型都有自己对应的一个Class对象,记录了一些关于该类的信息。jvm实例化一个类时要先看Class对象是否已经加载。lz这里只要抓下异常就ok了 楼主,吓我一跳,Class yourClass = Class.forName("java.lang.String"); 工作的很好啊。Class yourClass = Class.forName("String"); 肯定是不行的,原因楼上诸位已说。 java.lang.String是没问题的啊,是不是你不小心包名什么的写错了 有异常抛出(可以查api文档)的要放在try catch里面。 Class.forName("java.lang.String");表示加载一个类。这样用的话有个小技巧,可以判断某个类是否在 classpath 下,如果抛出没有找到类的异常,那说明没这个类。 java api中写的是:public static Class<?> forName(String className) throws ClassNotFoundException必须要抛出异常,所以要么用try catch,要么就是在方法签名中写throws ClassNotFoundExceptionClass yourClass = Class.forName("String"); 这句话错误,forName()中指定的类要指出该类的具体位置,既带包的名称:java.lang.String。 一个关于运行时常量池的问题,求指教! 为什么java没有运行结果 引用类型 列文件如何像windows的资源管理一样按名称排序 JAVA初学者请问各位大虾! 【很搞的问题: 进来看看啊】 JAVA多线程的问题 我从jbuilder8安装后考下来的jdk1.4为什么不能在我的系统中配置啊? 急 如何释放一个内存空间? 这个格式转换如何实现 请教!!!关于正则表达式的不获取匹配 求大家帮忙解决一个字符串匹配的问题
{
Class c = Class.forName("java.lang.String");
}
throws ClassNotFoundException返回与带有给定字符串名的类或接口相关联的 Class 对象。调用此方法等效于:
Class.forName(className, true, currentLoader)
其中 currentLoader 表示当前类的定义类加载器。
例如,以下代码片段返回命名为 java.lang.Thread 的类的运行时 Class 描述符。 Class t = Class.forName("java.lang.Thread")
调用 forName("X") 将导致命名为 X 的类被初始化。
参数:
className - 所需类的完全限定名。
返回:
具有指定名的类的 Class 对象。
抛出:
LinkageError - 如果链接失败
ExceptionInInitializerError - 如果此方法所激发的初始化失败
ClassNotFoundException - 如果无法定位该类
Class yourClass = Class.forName("java.lang.String");
} catch(Exception e) {
e.printStackTrace();
}
是不合适的
Class.forName(“完整的类名”)
如果你这样获取一个String类的class对象,是毫无意义的Class.forName的用处是在运行过程中才能决定使用哪个类来创建实例。你的问题的原因是:必须使用带package的完整类名
Class yourClass = Class.forName("java.lang.String"); 工作的很好啊。Class yourClass = Class.forName("String"); 肯定是不行的,原因楼上诸位已说。
throws ClassNotFoundException必须要抛出异常,所以要么用try catch,要么就是在方法签名中写throws ClassNotFoundExceptionClass yourClass = Class.forName("String"); 这句话错误,forName()中指定的类要指出该类的具体位置,既带包的名称:java.lang.String。