我是java初学者,我有一个drink类,其中有一个showall()方法来打印存储在私有哈希集中的所有drink对象。在我的主要功能中,我可以通过
Drink test = new Drink(value1 , value2 , ....);
test.showAll();
有没有一种方法可以访问showall()方法而不创建对象,因为我只想打印所有数组对象,而不需要每次打印时都创建一个新对象
饮料.java
private static HashSet<Drink> drinks = new HashSet(); //store all drinks in hashset
public void AddDrink(Drink d ){ //add a drink
try {
drinks.add(d);
}catch(Exception e ){
System.out.println(e);
}
}
public void showAll() { //show all drinks
for(Drink d : drinks) {
System.out.println(d);
}
}
1条答案
按热度按时间n6lpvg4x1#
因为在showall()方法中:
您使用的唯一字段(即饮料)数据也是静态的:
您可以将方法转换为静态:
然后您可以将该方法称为
Drink.showAll()
. 顺便说一句,您可以将showall方法缩短为:只是:
通过组合
forEach
与method reference
.在你目前的设计中,
public void AddDrink(Drink d )
也可以转化为静态方法(即。,public static void AddDrink(Drink d )
.综上所述,@justanotherdeveloper在评论中提出了一个更好的类设计