我應該更換一個簡單的二傳手我是否應該將集合封裝在setter中?
public void setCategories(Set<String> categories)
{
this.categories = categories;
}
像這樣的東西:
public void setCategories(Collection<String> categories)
{
this.categories.clear();
if (categories != null)
{
this.categories.addAll(categories);
}
}
所以對象的屬性類別將無法通過傳遞的參數參考進一步修改,因爲它可以:
Set<String> categories = new TreeSet<String>();
categories.add("cityguide");
categories.add("other");
Document document = new Document("http://unique-address.com");
document.setCategories(categories);
System.out.println(categories); //outputs [cityguide, other]
System.out.println(document.getCategories()); //outputs [cityguide, other]
document.setCategories(categories);
categories.add("traveling");
System.out.println(categories); //outputs [cityguide, other, traveling]
System.out.println(document.getCategories()); //outputs [cityguide, other, traveling]