- 自:
- 1.1
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Object
getInstanceOf
(Object bean, Class<?> targetType) 从给定的 bean 中获取表示该源对象指定类型视图的对象。static Object
instantiate
(ClassLoader cls, String beanName) 实例化一个 JavaBean。static Object
instantiate
(ClassLoader cls, String beanName, BeanContext beanContext) 实例化一个 JavaBean。static Object
instantiate
(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) 已弃用,将来可能会移除:此 API 元素可能会在将来的版本中移除。static boolean
检查是否处于设计模式。static boolean
确定 bean 是否可以假定 GUI 可用。static boolean
isInstanceOf
(Object bean, Class<?> targetType) 检查 bean 是否可以被视为给定目标类型。static void
setDesignTime
(boolean isDesignTime) 用于指示是否正在应用程序构建器环境中运行。static void
setGuiAvailable
(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 已被弃用。