Java—对象的变量定义

Java—对象的变量定义,java,object,javafx,tableview,Java,Object,Javafx,Tableview,我的问题如下:我读取了一个.csv文件,并将其转换为ArrayList。为了将这个ArrayList放在javafxTableView中,我需要创建一个对象,遍历ObservableList data=FXCollections.observableArrayList(),并根据需要用新对象()填充它。关键是,在我的.csv中,程序每次运行时的列数可能不同,因此对象定义也不同。我不知道如何定义一个对象,它的定义是我的ArrayList长度的函数,并且属性并不总是相同的(我在谷歌上也找不到任何线索

我的问题如下:我读取了一个
.csv
文件,并将其转换为
ArrayList
。为了将这个
ArrayList
放在javafx
TableView
中,我需要创建一个对象,遍历
ObservableList data=FXCollections.observableArrayList()
,并根据需要用
新对象()
填充它。关键是,在我的
.csv
中,程序每次运行时的列数可能不同,因此对象定义也不同。我不知道如何定义一个对象,它的定义是我的
ArrayList
长度的函数,并且属性并不总是相同的(我在谷歌上也找不到任何线索)

要进行说明,请想象以下代码:

public class SettingData extends Application {
   public void start(Stage stage) {
      TableView<FileData> table = new TableView<FileData>();
      final ObservableList<FileData> data = FXCollections.observableArrayList(
         new FileData("file1", "D:\\myFiles\\file1.txt", "25 MB", "12/01/2017"),
         new FileData("file2", "D:\\myFiles\\file2.txt", "30 MB", "01/11/2019"),
         new FileData("file3", "D:\\myFiles\\file3.txt", "50 MB", "12/04/2017"),
         new FileData("file4", "D:\\myFiles\\file4.txt", "75 MB", "25/09/2018")
      );

      TableColumn fileNameCol = new TableColumn("File Name");
      fileNameCol.setCellValueFactory(new PropertyValueFactory<>("fileName"));
      TableColumn pathCol = new TableColumn("Path");
      pathCol.setCellValueFactory(new PropertyValueFactory("path"));
      TableColumn sizeCol = new TableColumn("Size");
      sizeCol.setCellValueFactory(new PropertyValueFactory("size"));
      TableColumn dateCol = new TableColumn("Date Modified");
      dateCol.setCellValueFactory(new PropertyValueFactory("dateModified"));
      
      ObservableList<String> list = FXCollections.observableArrayList();
      table.setItems(data);
      table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
      table.getColumns().addAll(fileNameCol, pathCol, sizeCol, dateCol);
如何实现我的代码来处理这样一个事实:一旦我没有
size
列,或者下一次我将有一个
author
列。(事实上,我正在处理的文件包含大约80到110列,这就是为什么我需要对我的对象进行“模块化”定义的原因)

这是我在任何论坛上发表的第一篇文章,我不熟悉你的用法,很抱歉。
谢谢你的回答。

你是在说lamdasif吗?所以使用:Supplier length Supplier=()->myList.size();但我真的不明白你想要什么。也许您可以提供一些代码您可以检查我添加的内容:)只需用
列表表示每一行
,这样您就有了
表视图
。将文件读入
可观察列表
,并将其设置为表的项目。在解析文件时,跟踪最长的行,然后创建许多列,如
TableColumn
public class FileData {
   SimpleStringProperty fileName;
   SimpleStringProperty path;
   SimpleStringProperty size;
   SimpleStringProperty dateModified;
   FileData(String fileName, String path, String size, String dateModified) {
      this.fileName = new SimpleStringProperty(fileName);
      this.path = new SimpleStringProperty(path);
      this.size = new SimpleStringProperty(size);
      this.dateModified = new SimpleStringProperty(dateModified);
   }
   public String getFileName(){
      return fileName.get();
   }
   public void setFileName(String fname){
      fileName.set(fname);
   }
   public String getPath(){
      return path.get();
   }
   public void setPath(String fpath){
      path.set(fpath);
   }
   public String getSize(){
      return size.get();
   }
   public void setSize(String fsize){
      size.set(fsize);
   }
   public String getDateModified(){
      return dateModified.get();
   }
   public void setModified(String fmodified){
      dateModified.set(fmodified);
   }
}