我有两个类,它们都包含ObservableList,但是填充了不同的对象。在其他的逻辑类我有一个返回我列表的合适对象的函数:Java中的泛型,通用函数
public CarTableView findCarTableView(Button button) {
for(CarTableView carnet : carTableViewModel.getObservableList()) {
if(carnet.getActionButton().equals(button)) {
return carnet;
}
}
return null;
}
第一类:
public class CustomerTableView extends Customer{
private ObservableList<CustomerTableView> list = FXCollections.observableArrayList(); //HERE
private Button actionButton;
public CustomerTableView(String name, String surname, String city,
String postCode, String street,
String localNumber, Button actionButton) {
super(name, surname, city, postCode, street, localNumber);
this.actionButton=actionButton;
}
}
二等:
public class CarTableView extends Car{
private ObservableList<CarTableView> list = FXCollections.observableArrayList(); //HERE
private Button actionButton;
public CarTableView(String brand, String engine, String yearOfProduction,
boolean navi, boolean available, int power,
Button actionButton) {
super(brand, engine, yearOfProduction, navi, available, power);
this.actionButton=actionButton;
}
}
但此功能仅适用于来自特定课程的一个对象。我发现了泛型的功能,但是我遇到了一个问题。在这个函数中,我必须使用具体的方法,这两个类都有(getActionButton()
,getObservableList()
)
我碰到过这样的代码,但编译器告诉我这些函数的缺失,我该如何做得更好?
public <T> T findCarTableView(T t, Button button) {
for(T carnet : t.getObservableList()) {
if(carnet.getActionButton().equals(button)) {
return carnet;
}
}
return null;
}
@Updated但仍然没有解决我的问题 – Michael213
“编译器告诉我关于缺少这些功能” - 你什么意思?你有编译错误吗?什么是确切的错误信息? – Jesper
方法getObservableList()未定义类型T – Michael213