- java.lang.Object
-
- java.beans.Beans
-
public class Beans extends Object
这个类提供了一些通用的bean控制方法。- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 Constructor 描述 Beans()
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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)
已过时。建议使用instantiate(ClassLoader, String, BeanContext)
,因为Applet API已被弃用。 有关详细信息,请参阅java.applet package documentation 。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交互的环境中运行。
-
-
-
方法详细信息
-
instantiate
public static Object instantiate(ClassLoader cls, String beanName) throws IOException, ClassNotFoundException
实例化JavaBean。
- 参数
-
cls
- 我们应该从中创建bean的类加载器。 如果为空,则使用系统类加载器。 -
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的类加载器。 如果为空,则使用系统类加载器。 -
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
已过时。 建议使用instantiate(ClassLoader, String, BeanContext)
,因为Applet API已被弃用。 有关详细信息,请参阅java.applet package documentation 。实例化一个bean。bean是基于相对于类加载器的名称创建的。 该名称应该是一个点分隔的名称,如“abc”。
在Bean 1.0中,给定的名称可以指示序列化对象或类。 今后还可能增加其他机制。 在bean 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”。 为了正确的行为,应该在将小程序添加到可见的AWT容器之后完成。
请注意,通过beans.instantiate创建的applet在与浏览器中运行的applet稍微不同的环境中运行。 特别是,bean applet无法访问“参数”,所以他们可能希望提供属性get / set方法来设置参数值。 我们建议bean-applet开发人员对JDK appletviewer(参考浏览器环境)和BDK BeanBox(对于引用bean容器)来测试他们的bean-applet。
- 参数
-
cls
- 我们应该从中创建bean的类加载器。 如果为空,则使用系统类加载器。 -
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是否可以被看作给定的目标类型。 如果可以在给定的bean上使用Beans.getInstanceof方法来获取表示指定的targetType类型视图的对象,结果将成立。- 参数
-
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
真。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPropertiesAccess
方法不允许设置系统属性。 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
setGuiAvailable
public static void setGuiAvailable(boolean isGuiAvailable) throws SecurityException
用于指示我们是否在可以进行GUI交互的环境中运行。请注意,此方法是安全检查的,不可用(例如)不可信applet。 更具体地说,如果有安全管理器,则调用其
checkPropertiesAccess
方法。 这可能会导致SecurityException。- 参数
-
isGuiAvailable
- 如果GUI交互可用,isGuiAvailable
真。 - 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPropertiesAccess
方法不允许设置系统属性。 - 另请参见:
-
SecurityManager.checkPropertiesAccess()
-
-