我应该投什么类型?

Tom*_*sky 0 java oop

我有一个带有方法的表单类:

IText getSearchField()
Run Code Online (Sandbox Code Playgroud)

IText接口是一个子类实现的东西JTextFieldMyTextField.

我无法控制的原因,我无法从类型为窗体类的控制MyTextField,如JTextField,Component或任何在其他MyTextField类型的层次结构.

我从驱动程序对象访问表单类对象,并希望驱动程序将焦点设置为getSearchField()调用检索的搜索字段.

我可以使用类的requestFocusInWindow()方法Component来执行此操作.但是,首先我需要将getSearchField()调用的结果转换为MyTextField类型层次结构中的某些内容,因为调用getSearchField()返回一个IText.

我的问题是,我应该投MyTextField哪吗?到Component?介于两者之间的东西?

为什么?哪个会最快?

Sjo*_*erd 6

投射到你需要的最不具体的.也就是说,如果A是B的超类,并且您只需要A中的方法,则转换为A.如果您还需要B中的方法,则转换为B.

哪个会最快?你为什么这么问?这没有什么区别.

  • 任何演员阵容的表现影响都可以忽略不计. (2认同)