- java.lang.Object
-
- javax.activation.CommandInfo
-
public class CommandInfo extends Object
CommandMap实现使用CommandInfo类来描述命令请求的结果。 它向请求者提供请求的动词以及bean的实例。 还有一种方法将返回实现该命令的类的名称,但不能保证返回有效的值 。 这样做的原因是允许CommandMap的子类CommandMap中的CommandMap隐含提供特殊的行为。 例如,CommandMap可以动态生成JavaBean。 在这种情况下,可能无法仅从类名称创建具有所有正确状态信息的对象。- 从以下版本开始:
- 1.6
-
-
构造方法摘要
构造方法 Constructor 描述 CommandInfo(String verb, String className)
CommandInfo的构造方法。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 String
getCommandClass()
返回命令的类名。String
getCommandName()
返回命令动词。Object
getCommandObject(DataHandler dh, ClassLoader loader)
返回实例化的JavaBean组件。
-
-
-
方法详细信息
-
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
-
-