Module java.desktop
Package java.beans

Class Beans

java.lang.Object
java.beans.Beans

public class Beans extends Object
此类提供一些通用的 bean 控制方法。
自:
1.1
  • 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 use instantiate(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

      public static Object getInstanceOf(Object bean, Class<?> targetType)
      从给定的 bean 中获取表示该源对象指定类型视图的对象。

      结果可能是相同的对象,也可能是不同的对象。如果请求的目标视图不可用,则返回给定的 bean。

      此方法在 Beans 1.0 中提供,作为一个钩子,以允许将来添加更灵活的 bean 行为。

      参数:
      bean - 我们希望获取视图的对象。
      targetType - 我们想要获取的视图类型。
      返回:
      表示源对象指定类型视图的对象
    • isInstanceOf

      public static boolean isInstanceOf(Object bean, Class<?> targetType)
      检查 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

      public static void setDesignTime(boolean isDesignTime) throws SecurityException
      用于指示是否正在应用程序构建器环境中运行。

      请注意,此方法经过安全检查,不适用于(例如)不受信任的 applet。更具体地说,如果存在安全管理器,则会调用其 checkPropertiesAccess 方法。这可能导致 SecurityException。

      参数:
      isDesignTime - 如果我们在应用程序构建工具中,则为 True。
      抛出:
      SecurityException - 如果存在安全管理器且其 checkPropertiesAccess 方法不允许设置系统属性。
      参见:
    • setGuiAvailable

      public static void setGuiAvailable(boolean isGuiAvailable) throws SecurityException
      用于指示是否正在运行具有 GUI 交互功能的环境。

      请注意,此方法经过安全检查,不适用于(例如)不受信任的 applet。更具体地说,如果存在安全管理器,则会调用其 checkPropertiesAccess 方法。这可能导致 SecurityException。

      参数:
      isGuiAvailable - 如果 GUI 交互功能可用,则为 True。
      抛出:
      SecurityException - 如果存在安全管理器且其 checkPropertiesAccess 方法不允许设置系统属性。
      参见: