Module  java.activation
软件包  javax.activation

Class CommandInfo



  • public class CommandInfo
    extends Object
    CommandMap实现使用CommandInfo类来描述命令请求的结果。 它向请求者提供请求的动词以及bean的实例。 还有一种方法将返回实现该命令的类的名称,但不能保证返回有效的值 这样做的原因是允许CommandMap的子类CommandMap中的CommandMap隐含提供特殊的行为。 例如,CommandMap可以动态生成JavaBean。 在这种情况下,可能无法仅从类名称创建具有所有正确状态信息的对象。
    从以下版本开始:
    1.6
    • 构造方法详细信息

      • CommandInfo

        public CommandInfo​(String verb,
                           String className)
        CommandInfo的构造方法。
        参数
        verb - CommandInfo所命令的命令动词。
        className - 命令的全限定类名。
    • 方法详细信息

      • getCommandName

        public String getCommandName​()
        返回命令动词。
        结果
        命令动词。
      • getCommandClass

        public String getCommandClass​()
        返回命令的类名。 这个方法可以在CommandMap子类CommandInfo为其自身目的的情况下返回null。 换句话说,可能无法通过仅知道其类名称在命令中创建正确的状态。 不要依赖此方法返回有效值!
        结果
        命令的类名,或 null
      • getCommandObject

        public Object getCommandObject​(DataHandler dh,
                                       ClassLoader loader)
                                throws IOException,
                                       ClassNotFoundException
        返回实例化的JavaBean组件。

        如果java.beans.Beans可见,则调用java.beans.Beans#instantiate方法将组件实例化为JavaBeans组件。 java.beans.Beans不可见(当java.desktop模块不可读或当运行时映像不包含java.desktop模块时),则该命令的类将使用其公共无参数构造函数进行加载和实例化。

        组件类需要公开。

        如果bean实现了javax.activation.CommandObject接口,则调用其setCommandContext方法。

        如果DataHandler参数为空,那么该bean将被实例化,没有数据。 注意:如果由于某种原因,当该方法尝试访问其InputStream时,传递的DataHandler会抛出IOExceptions,这可能很有用。 它将允许调用者检索对bean的引用,如果它可以被实例化。

        如果bean不实现CommandObject接口,则此方法将检查它是否实现了java.io.Externalizable接口。 如果是这样,如果可以从DataHandler获取InputStream,那么bean的readExternal方法将被调用。

        参数
        dh - 描述要传递给命令的数据的DataHandler。
        loader - 用于实例化bean的ClassLoader。
        结果
        异常
        IOException - 用于读取数据的失败
        ClassNotFoundException - 如果找不到命令对象类
        另请参见:
        Beans.instantiate(java.lang.ClassLoader, java.lang.String)CommandObject