我只是想知道是否有任何方法可以回收Java中在同级类中重复的方法,因为它们需要特定的对象。
让我们看一个例子:
public void refreshSearch(){
try{
String search = bookDialog.getTxtBrowser().getText();
bookBusiness.searchByString(search, bookDialog
.selectedItemToString(bookDialog.getCmbBrowser()));
bookDialog.getTbBooks()
.setModel(new BookTableView(bookBusiness));
setBookTableTitles();
}
catch(SQLException ex){System.out.print(ex);}
}
然后:
public void refreshSearch(){
try{
String search = studentDialog.getTxtBrowser().getText();
studentBusiness.searchByString(search, studentDialog
.selectedItemToString(studentDialog.getCmbBrowser()));
studentDialog.getTbStudents()
.setModel(new StudentTableView(studentBusiness));
setStudentTableTitles();
}
catch(SQLException ex){System.out.println(ex);}
}
这里的要点是,我有两个相等的方法,只是因为它们需要特殊的对象类型。
我想到的解决方案是接收一个通用的Object参数,然后检查该类并创建相应的实例,但是如果该方法被三个不同的类使用,则我必须创建六个对象,而仅创建两个将使用其中的一个(其他四个将为null)。因此,我将不得不为每个对象创建一个长结构。
Java中有什么方法可以解决这个问题?
非常感谢!
答案 0 :(得分:0)
这可以使用接口解决。因此,您可以创建一个具有getTxtBrowser()和getTbStudents()方法的Dialog接口,以及一个具有searchByString方法的Business接口,然后为该接口为StudentDialog和BookDialog以及StudentBusiness和BookBusiness创建实现类。这样,您可以创建一个使用该接口的方法,它将在实现类中执行这些方法。