假设我有一个名为product的类,它包含这样一个constructor
public Product(String name, double price, int barcode){
this.name = name;
this.barcode = barcode;
this.price = price;
}
然后我有另一个类importdata,它有一个方法,可以将许多产品加载到一个返回productlist的列表中。
我现在想从不同的类访问这个列表,而不必再次将数据加载到csv文件中。所以不是这样:
ImportFruitAndVegatables iFV = new ImportFruitAndVegatables();
List<Product> products = iFV.fillListWithProducts();
我想要这样的东西
mainController.products
因为我的主控制器已经运行了这个方法。这样地
List <Product> productList = importFruitAndVegatables.fillListWithProducts();
所以我的问题是:有没有什么方法你只需要运行这个方法一次,而不需要再次运行它?谢谢您!
1条答案
按热度按时间dy1byipe1#
您至少可以通过以下方式共享对对象的引用:
全局变量。在java中,是在类上定义的静态变量。标记为
final
如果在应用程序执行期间只应分配一次对象引用。单例设计模式。在java中,这最好是作为一个枚举来定义一个名为
INSTANCE
.公共示例变量。如果
List <Product> productList
是的示例上的成员字段mainController
,然后将该字段标记为public
允许任何其他代码调用mainController.productList
.将列表作为参数传递给方法。例如,定义一个方法,例如
public SalesReport produceSalesReport( List <Product> productList ) {…}
.返回对象引用的方法。当所需对象在第一次调用此方法之前没有示例化时,这提供了延迟加载的机会。
你没有提供足够的细节来提出建议。通常最好使用返回列表的方法。
提示:通常最好提供列表的副本或不可修改的列表,这样调用的程序员就不会干扰原始列表。看到了吗
List.copyOf
.