让我描述一下情况。
我有一个带有整数变量的类,我有一个带有3列的TableView'< 100','100-200'和'> 200'添加了MyClass
个对象。根据对象的myIntValue
, x 会显示在正确的列中。现在我想知道获得这个结果的最佳方法是什么。
第一个选项,在MyClass
中制作方法,并将其作为我的CellValueFactory
用于我的列:
public class MyClass{
...
private int myIntValue;
...
public boolean getLessThan100(){
return myIntValue < 100;
}
public boolean getBetween100And200(){
return myIntValue >= 100 && myIntValue <= 200;
}
public boolean getMoreThan200(){
return myIntValue > 200;
}
}
在我的控制器中:
tcLessThan100.setCellValueFactory(new PropertyValueFactory<MyClass, Boolean>("lessThan100"));
tcBetween100And200.setCellValueFactory(new PropertyValueFactory<MyClass, Boolean>("between100And200"));
tcMoreThan200.setCellValueFactory(new PropertyValueFactory<MyClass, Boolean>("moreThan200"));
第二个选项,请勿在{{1}}中添加额外的方法,而是使用MyClass
:
CellFactory
在我的控制器中:
public class MyClass{
...
private int myIntValue;
...
public int getMyIntValue(){
return myIntValue;
}
}
在CustomCellFactories类中:
tcLessThan100.setCellValueFactory(new PropertyValueFactory<MyClass, Integer>("myIntValue"));
tcLessThan100.setCellFactory(CustomCellFactories.getXCellFactory100());
tcBetween100And200.setCellValueFactory(new PropertyValueFactory<MyClass, Integer>("myIntValue"));
tcBetween100And200.setCellFactory(...);
tcMoreThan200.setCellValueFactory(new PropertyValueFactory<MyClass, Integer>("myIntValue"));
tcMoreThan200.setCellFactory(...);
我能够同时使用这两个选项,但我想知道其中一个选项是更好的方法(例如,为了获得更好的性能,......)。
答案 0 :(得分:0)
快速回答:这里的计算很少。因此,无论是在内存还是CPU性能方面,无论您是以这种方式还是其他方式进行操作都无关紧要。与显示TableView
时所发生的其他事情相比,任何差异都可以忽略不计。
因此,在我看来,这纯粹是一个设计问题。从域的角度来看,MyClass
有哪些更重要的功能/属性?它是myIntValue
还是myIntValue
可以容纳的三个类别?“
基于我现在对问题的理解,我选择了第二选项,因为我看到的是视觉细节之间的小于/中/大于或更多,而不是重要的领域方面。但是你可以选择这样做,而不会有任何错误。 : - )