Class.ForName 方法

定义

重载

ForName(String)

返回与 Class 具有给定字符串名称的类或接口关联的 对象。

ForName(String, Boolean, ClassLoader)

使用给定的 Class 类加载程序返回与具有给定字符串名称的类或接口关联的对象。

ForName(String)

返回与 Class 具有给定字符串名称的类或接口关联的 对象。

[Android.Runtime.Register("forName", "(Ljava/lang/String;)Ljava/lang/Class;", "")]
public static Java.Lang.Class ForName (string className);
[<Android.Runtime.Register("forName", "(Ljava/lang/String;)Ljava/lang/Class;", "")>]
static member ForName : string -> Java.Lang.Class

参数

className
String

所需类的完全限定名称。

返回

Class具有指定名称的类的 对象。

属性

例外

如果找不到请求的类,则为 。

如果在链接期间发生错误

如果在类的静态初始化期间发生异常,则为 。

注解

返回与 Class 具有给定字符串名称的类或接口关联的 对象。 调用此方法等效于:

<blockquote>Class.forName(className, true, currentLoader)</blockquote>

其中 currentLoader 表示当前类的定义类加载程序。

例如,以下代码片段返回名为 java.lang.Thread的类的运行时Class描述符:

<blockquote>Class t = Class.forName("java.lang.Thread")</blockquote>

调用 会导致 forName("X") 初始化名为 的 X 类。

java.lang.Class.forName(java.lang.String)Java 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

适用于

ForName(String, Boolean, ClassLoader)

使用给定的 Class 类加载程序返回与具有给定字符串名称的类或接口关联的对象。

[Android.Runtime.Register("forName", "(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", "")]
public static Java.Lang.Class ForName (string name, bool initialize, Java.Lang.ClassLoader? loader);
[<Android.Runtime.Register("forName", "(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", "")>]
static member ForName : string * bool * Java.Lang.ClassLoader -> Java.Lang.Class

参数

name
String

所需类的完全限定名称

initialize
Boolean

如果 true 类将被初始化,则为 。 请参阅 java 语言规范</em>> 的第 <12.4 节。

loader
ClassLoader

类加载程序,必须从中加载类

返回

表示所需类的类对象

属性

例外

如果找不到请求的类,则为 。

如果在链接期间发生错误

如果在类的静态初始化期间发生异常,则为 。

注解

使用给定的 Class 类加载程序返回与具有给定字符串名称的类或接口关联的对象。 给定类或接口的完全限定名称 (getName) 此方法将尝试查找、加载和链接类或接口。 指定的类加载程序用于加载类或接口。 如果 参数 loader 为 null,则通过 bootstrap 类加载程序加载类。 仅当 initialize 参数为 true 且之前尚未初始化时,才会初始化 类。

如果 name 表示基元类型或 void,则将尝试在名称为 name的未命名包中查找用户定义的类。 因此,此方法不能用于获取表示基元类型或 void 的任何 Class 对象。

如果 name 表示数组类,则会加载数组类的组件类型,但未初始化。

例如,在实例方法中,表达式:

<blockquote>Class.forName("Foo")</blockquote>

等效于:

<blockquote>Class.forName("Foo", true, this.getClass().getClassLoader())</blockquote>

请注意,此方法引发与 Java 语言规范</em 第 12.2、12.3 和 12.4 <>节中指定的加载、链接或>初始化相关的错误。 请注意,此方法不检查调用方是否可以访问请求的类。

在 1.2 中添加。

java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader)Java 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

适用于