Java 我应该投什么类型的?
我有一个带有方法的form类:Java 我应该投什么类型的?,java,oop,Java,Oop,我有一个带有方法的form类: IText getSearchField() IText接口是由名为MyTextField的JTextField的子类实现的 由于我无法控制的原因,我无法从表单类中获取控件,该表单类的类型为MyTextField、asJTextField、组件,或者MyTextField类型层次结构中的任何其他内容 我正在从驱动程序对象访问表单类对象,希望驱动程序将焦点设置到getSearchField()调用检索到的搜索字段上 我可以使用组件类的requestFocusInW
IText getSearchField()
IText
接口是由名为MyTextField
的JTextField
的子类实现的
由于我无法控制的原因,我无法从表单类中获取控件,该表单类的类型为MyTextField
、asJTextField
、组件
,或者MyTextField
类型层次结构中的任何其他内容
我正在从驱动程序对象访问表单类对象,希望驱动程序将焦点设置到getSearchField()
调用检索到的搜索字段上
我可以使用组件
类的requestFocusInWindow()
方法来实现这一点。但是,首先我需要将getSearchField()
调用的结果强制转换为MyTextField
类型层次结构中的某个对象,因为对getSearchField()
的调用返回一个IText
我的问题是,我应该转换到MyTextField
?到组件
?在两者之间
为什么??哪一个最快 按您需要的最不具体的方式进行转换。也就是说,如果A是B的超类,并且您只需要从A转换到A的方法。如果您还需要从B转换到B的方法
哪一个最快?你为什么问这个?这不会有什么不同。根据您需要的最不具体的内容进行转换。也就是说,如果A是B的超类,并且您只需要从A转换到A的方法。如果您还需要从B转换到B的方法
哪一个最快?你为什么问这个?这不会有什么区别。那么这是否意味着无论您将强制转换为何种类型,强制转换总是以相同的速度进行?强制转换的成本惊人,因为JVM必须在运行时验证强制转换是否确实合法。但是,如果运行时间上有显著的差异取决于您将它投给什么,我会非常惊讶。这对基准测试来说是很有趣的。在任何情况下,可维护性都比微小的性能提升更重要,即使有。那么,这是否意味着无论您将强制转换为何种类型,强制转换总是以相同的速度进行?好吧,强制转换非常昂贵,因为JVM必须在运行时验证强制转换是否确实合法。但是,如果运行时间上有显著的差异取决于您将它投给什么,我会非常惊讶。这对基准测试来说是很有趣的。在任何情况下,可维护性都比微小的性能提升更重要,即使有。