- java.lang.Object
-
- java.beans.Beans
-
public class Beans extends Object
该类提供了一些通用bean控件方法。- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 构造器 描述 Beans()
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 变量和类型 方法 描述 static Object
getInstanceOf(Object bean, 类<?> 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)
已过时。建议使用instantiate(ClassLoader, String, BeanContext)
,因为不推荐使用Applet API。static boolean
isDesignTime()
测试我们是否处于设计模式。static boolean
isGuiAvailable()
确定bean是否可以假定GUI可用。static boolean
isInstanceOf(Object bean, 类<?> targetType)
检查bean是否可以被视为给定的目标类型。static void
setDesignTime(boolean isDesignTime)
用于指示我们是否在应用程序构建器环境中运行。static void
setGuiAvailable(boolean isGuiAvailable)
用于指示我们是否在GUI交互可用的环境中运行。
-
-
-
方法详细信息
-
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") public static Object instantiate(ClassLoader cls, String beanName, BeanContext beanContext, AppletInitializer initializer) throws IOException, ClassNotFoundException
Deprecated.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是基于相对于类加载器的名称创建的。 此名称应为点分隔名称,例如“abc”。
在Bean 1.0中,给定名称可以指示序列化对象或类。 将来可能会增加其他机制。 在beans 1.0中,我们首先尝试将beanName视为序列化对象名称,然后将其视为类名。
当使用beanName作为序列化对象名时,我们将给定的beanName转换为资源路径名并添加尾随的“.ser”后缀。 然后,我们尝试从该资源加载序列化对象。
例如,给定beanName为“xy”,Beans.instantiate将首先尝试从资源“x / y.ser”读取序列化对象,如果失败则会尝试加载类“xy”并创建实例那个班。
如果bean是java.applet.Applet的子类型,则会给它一些特殊的初始化。 首先,它提供了默认的AppletStub和AppletContext。 其次,如果它是从类名实例化的,则调用applet的“init”方法。 (如果bean被反序列化,则跳过此步骤。)
请注意,对于作为applet的bean,调用者负责在applet上调用“start”。 为了正确行为,应该在将applet添加到可见AWT容器中之后执行此操作。
请注意,通过beans.instantiate创建的applet在与浏览器内运行的applet略有不同的环境中运行。 特别是,bean applet无法访问“参数”,因此他们可能希望提供属性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, 类<?> targetType)
从给定的bean中,获取表示该源对象的指定类型视图的对象。结果可能是同一个对象或不同的对象。 如果请求的目标视图不可用,则返回给定的bean。
此方法在Beans 1.0中作为钩子提供,以允许将来添加更灵活的bean行为。
- 参数
-
bean
- 我们想要从中获取视图的对象。 -
targetType
- 我们想要获得的视图类型。 - 结果
- 表示源对象的指定类型视图的对象
-
isInstanceOf
public static boolean isInstanceOf(Object bean, 类<?> targetType)
检查bean是否可以被视为给定的目标类型。 如果可以在给定bean上使用Beans.getInstanceof方法来获取表示指定targetType类型视图的对象,则结果为true。- 参数
-
bean
- 我们想要获取视图的Bean。 -
targetType
- 我们想要获得的视图类型。 - 结果
- 如果给定的bean支持给定的targetType,则为“true”。
-
isDesignTime
public static boolean isDesignTime()
测试我们是否处于设计模式。- 结果
- 如果我们在应用程序构建环境中运行,则为True。
- 另请参见:
-
DesignMode
-
isGuiAvailable
public static boolean isGuiAvailable()
确定bean是否可以假定GUI可用。- 结果
- 如果我们在bean可以假设交互式GUI可用的环境中运行,那么它们可以弹出对话框等。这通常会在窗口环境中返回true,并且通常在服务器环境中返回false或者应用程序作为批处理作业的一部分运行。
- 另请参见:
-
Visibility
-
setDesignTime
public static void setDesignTime(boolean isDesignTime) throws SecurityException
用于指示我们是否在应用程序构建器环境中运行。请注意,此方法已进行安全检查,并且不可用于(例如)不受信任的applet。 更具体地说,如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致SecurityException。- 参数
-
isDesignTime
- 如果我们在应用程序构建器工具中,isDesignTime
True。 - 异常
-
SecurityException
- 如果存在安全管理器且其checkPropertiesAccess
方法不允许设置系统属性。 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
setGuiAvailable
public static void setGuiAvailable(boolean isGuiAvailable) throws SecurityException
用于指示我们是否在GUI交互可用的环境中运行。请注意,此方法已进行安全检查,并且不可用于(例如)不受信任的applet。 更具体地说,如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致SecurityException。- 参数
-
isGuiAvailable
- 如果GUI交互可用,isGuiAvailable
True。 - 异常
-
SecurityException
- 如果存在安全管理器且其checkPropertiesAccess
方法不允许设置系统属性。 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
-