我正在尝试创建一个通用的tableView类,但是我希望它仅处理程序中的某些数据类型-它们位于不同的包中。
通过操作通配符可以做到吗?
public class GenericTable <T>{
private Collection<T> data;
@FXML
private Text headline;
@FXML
private ObservableList<T> properties=FXCollections.observableArrayList();
@FXML
private TableView<T> table;
@FXML
private TableColumn<T, String> prop1;
@FXML
private TableColumn<T, String> prop2;
@FXML
private TableColumn<T, String> prop3;
public void setData(Collection<T> data){
this.data=data;
}
public void setText(String txt){
headline=new Text(txt);
}
public void initialize(){
}
}
最佳答案
也许您正在寻找Bounded type Parameters。extends
关键字可用于限制要作为函数参数传递的类型。
例如,以下内容仅允许从Number
类的实例或扩展Number
类本身的类的实例中调用:
public <U extends Number> void doSomething(U u) {}
您可能还需要检查以下其他问题:
Java Generics for Upper bound & lower bound wild cards
When to use generic methods and when to use wild-card?
关于java - 使用通配符限制从特定程序包输入的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31677772/