- 自:
- 1.1
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ObjectgetInstanceOf(Object bean, Class<?> targetType) 从给定的 bean 中获取表示该源对象指定类型视图的对象。static Objectinstantiate(ClassLoader cls, String beanName) 实例化一个 JavaBean。static Objectinstantiate(ClassLoader cls, String beanName, BeanContext beanContext) 实例化一个 JavaBean。static Objectinstantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) 已弃用,将来可能会移除:此 API 元素可能会在将来的版本中移除。static boolean检查是否处于设计模式。static boolean确定 bean 是否可以假定 GUI 可用。static booleanisInstanceOf(Object bean, Class<?> targetType) 检查 bean 是否可以被视为给定目标类型。static voidsetDesignTime(boolean isDesignTime) 用于指示是否正在应用程序构建器环境中运行。static voidsetGuiAvailable(boolean isGuiAvailable) 用于指示是否正在运行具有 GUI 交互功能的环境。
-
Constructor Details
-
Beans
public Beans()构造一个Beans。
-
-
Method Details
-
instantiate
public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException 实例化一个 JavaBean。
- 参数:
-
cls- 应从中创建 bean 的类加载器。如果为 null,则使用系统类加载器。 -
beanName- 类加载器中的 bean 名称。例如 "sun.beanbox.foobah" - 返回:
- 一个 JavaBean
- 抛出:
-
ClassNotFoundException- 如果无法找到序列化对象的类。 -
IOException- 如果发生 I/O 错误。
-
instantiate
public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext) throws IOException, ClassNotFoundException 实例化一个 JavaBean。
- 参数:
-
cls- 应从中创建 bean 的类加载器。如果为 null,则使用系统类加载器。 -
beanName- 类加载器中的 bean 名称。例如 "sun.beanbox.foobah" -
beanContext- 要嵌套新 bean 的 BeanContext - 返回:
- 一个 JavaBean
- 抛出:
-
ClassNotFoundException- 如果无法找到序列化对象的类。 -
IOException- 如果发生 I/O 错误。 - 自:
- 1.2
-
instantiate
@Deprecated(since="9", forRemoval=true) public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) throws IOException, ClassNotFoundException Deprecated, for removal: This API element is subject to removal in a future version.It is recommended to useinstantiate(ClassLoader, String, BeanContext), because the Applet API is deprecated. See the java.applet package documentation for further information.实例化一个 bean。该 bean 是基于相对于类加载器的名称创建的。此名称应为点分隔的名称,例如 "a.b.c"。
在 Beans 1.0 中,给定的名称可以指示序列化对象或类。将来可能会添加其他机制。在 Beans 1.0 中,我们首先尝试将 beanName 视为序列化对象名称,然后作为类名称。
当将 beanName 用作序列化对象名称时,我们将给定的 beanName 转换为资源路径名,并添加一个尾随的 ".ser" 后缀。然后,我们尝试从该资源加载序列化对象。
例如,给定 beanName 为 "x.y",Beans.instantiate 首先尝试从资源 "x/y.ser" 读取序列化对象,如果失败,则尝试加载类 "x.y" 并创建该类的实例。
如果 bean 是 java.applet.Applet 的子类型,则会进行一些特殊的初始化。首先,它会提供一个默认的 AppletStub 和 AppletContext。其次,如果它是从类名实例化的,则会调用 applet 的 "init" 方法。(如果 bean 是反序列化的,则跳过此步骤。)
请注意,对于是 applet 的 bean,调用者有责任在 applet 上调用 "start"。为了正确的行为,这应该在 applet 被添加到可见的 AWT 容器后进行。
请注意,通过 beans.instantiate 创建的 applet 会在与在浏览器中运行的 applet 有些不同的环境中运行。特别是,bean applet 无法访问 "parameters",因此可能希望提供属性的 get/set 方法来设置参数值。我们建议 bean-applet 开发人员针对 JDK appletviewer(用作参考浏览器环境)和 BDK BeanBox(用作参考 bean 容器)测试其 bean-applet。
- 参数:
-
cls- 应从中创建 bean 的类加载器。如果为 null,则使用系统类加载器。 -
beanName- 类加载器中的 bean 名称。例如 "sun.beanbox.foobah" -
beanContext- 要嵌套新 bean 的 BeanContext -
initializer- 新 bean 的 AppletInitializer - 返回:
- 一个 JavaBean
- 抛出:
-
ClassNotFoundException- 如果无法找到序列化对象的类。 -
IOException- 如果发生 I/O 错误。 - 自:
- 1.2
-
getInstanceOf
从给定的 bean 中获取表示该源对象指定类型视图的对象。结果可能是相同的对象,也可能是不同的对象。如果请求的目标视图不可用,则返回给定的 bean。
此方法在 Beans 1.0 中提供,作为一个钩子,以允许将来添加更灵活的 bean 行为。
- 参数:
-
bean- 我们希望获取视图的对象。 -
targetType- 我们想要获取的视图类型。 - 返回:
- 表示源对象指定类型视图的对象
-
isInstanceOf
检查 bean 是否可以被视为给定目标类型。如果可以使用 Beans.getInstanceof 方法在给定的 bean 上获取表示指定 targetType 类型视图的对象,则结果将为 true。- 参数:
-
bean- 我们希望获取视图的 bean。 -
targetType- 我们想要获取的视图类型。 - 返回:
- 如果给定的 bean 支持给定的 targetType,则为 "true"。
-
isDesignTime
public static boolean isDesignTime()检查是否处于设计模式。- 返回:
- 如果我们正在运行应用程序构建环境中,则为 True。
- 参见:
-
isGuiAvailable
public static boolean isGuiAvailable()确定 bean 是否可以假定 GUI 可用。- 返回:
- 如果我们正在运行环境中,bean 可以假定交互式 GUI 可用,因此它们可以弹出对话框等。在窗口环境中,通常会返回 true,在服务器环境中或作为批处理作业的一部分运行时,通常会返回 false。
- 参见:
-
setDesignTime
用于指示是否正在应用程序构建器环境中运行。请注意,此方法经过安全检查,不适用于(例如)不受信任的 applet。更具体地说,如果存在安全管理器,则会调用其
checkPropertiesAccess方法。这可能导致 SecurityException。- 参数:
-
isDesignTime- 如果我们在应用程序构建工具中,则为 True。 - 抛出:
-
SecurityException- 如果存在安全管理器且其checkPropertiesAccess方法不允许设置系统属性。 - 参见:
-
setGuiAvailable
用于指示是否正在运行具有 GUI 交互功能的环境。请注意,此方法经过安全检查,不适用于(例如)不受信任的 applet。更具体地说,如果存在安全管理器,则会调用其
checkPropertiesAccess方法。这可能导致 SecurityException。- 参数:
-
isGuiAvailable- 如果 GUI 交互功能可用,则为 True。 - 抛出:
-
SecurityException- 如果存在安全管理器且其checkPropertiesAccess方法不允许设置系统属性。 - 参见:
-
instantiate(ClassLoader, String, BeanContext),因为 Applet API 已被弃用。