java.lang.Object java.beans.Beans
public class Beans
此类提供一些通用的 bean 控制方法。
构造方法摘要 | |
---|---|
Beans() |
方法摘要 | |
---|---|
static 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) 实例化 bean。 |
static boolean |
isDesignTime() 测试是否正处于设计模式。 |
static boolean |
isGuiAvailable() 确定 bean 是否可以假定某个 GUI 是可用的。 |
static boolean |
isInstanceOf(Object bean, Class<?> targetType) 检查是否可以将 bean 视为给定目标类型。 |
static void |
setDesignTime(boolean isDesignTime) 用于指示是否正运行在应用程序生成器环境中。 |
static void |
setGuiAvailable(boolean isGuiAvailable) 用于指示是否正运行在可进行 GUI 交互的环境中。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public Beans()
方法详细信息 |
---|
public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException
实例化 JavaBean。
cls
- 应该在其中创建 bean 的类加载器。如果该参数为 null,则使用系统类加载器。
beanName
- 类加载器中 bean 的名称。例如 "sun.beanbox.foobah"
ClassNotFoundException
- 如果找不到序列化对象的类。
IOException
- 如果发生 I/O 错误。
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
ClassNotFoundException
- 如果找不到序列化对象的类。
IOException
- 如果发生 I/O 错误。
public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) throws IOException, ClassNotFoundException
基于相对于某个类加载器的名称创建 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。其次,如果根据类名称实例化 bean,则调用 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
ClassNotFoundException
- 如果找不到序列化对象的类。
IOException
- 如果发生 I/O 错误。
public static Object getInstanceOf(Object bean, Class<?> targetType)
结果可能是相同的对象或不同的对象。如果所请求的目标视图不可用,则返回给定 bean。
此方法在 Beans 1.0 中作为一个钩子 (hook) 提供,以允许以后添加更灵活的 bean 行为。
bean
- 想从中获得视图的对象。
targetType
- 想获得的视图类型。
public static boolean isInstanceOf(Object bean, Class<?> targetType)
bean
- 想从中获得视图的 bean。
targetType
- 想获得的视图类型。
public static boolean isDesignTime()
DesignMode
public static boolean isGuiAvailable()
Visibility
public static void setDesignTime(boolean isDesignTime) throws SecurityException
注意,此方法是经过安全检查的,不可以用于(例如)不受信任的 applet。更明确地说,如果有安全管理器,则调用其 checkPropertiesAccess
方法。这可能会导致 SecurityException 异常。
isDesignTime
- 如果正在使用应用程序生成器工具,则该参数为 true。
SecurityException
- 如果安全管理器存在并且其
checkPropertiesAccess
方法不允许设置系统属性。
SecurityManager.checkPropertiesAccess()
public static void setGuiAvailable(boolean isGuiAvailable) throws SecurityException
注意,此方法是经过安全检查的,不可以用于(例如)不受信任的 applet。更明确地说,如果有安全管理器,则调用其 checkPropertiesAccess
方法。这可能会导致 SecurityException 异常。
isGuiAvailable
- 如果可以进行 GUI 交互,则该参数为 true。
SecurityException
- 如果安全管理器存在并且其
checkPropertiesAccess
方法不允许设置系统属性。
SecurityManager.checkPropertiesAccess()