[英]Creating a method that will set values on a object, return the object or set using the passed param?
我正在我的 Java 項目中創建一個方法,它只是設置一個對象的值,而該對象又被另一種方法調用以進行一些處理。 常見的方法是返回正在設置的對象,另一種方法是設置在參數中傳遞的對象。
你能告訴我這兩種情況的優缺點嗎(甚至是它的內存消耗或性能,甚至是細微的差異或何時使用它們),兩者都有效,但也許我錯過了一些關鍵點。
返回正在設置的對象。
public Vehicles setVehiclesDetails(){
Vehicles vehicles = new Vehicles();
List<Car> carList = new ArrayList<>();
Car car = new Car();
car.setName("Tesla Model S");
car.setBrand("Tesla");
car.setPrice(45000);
carList.add(car);
List<Bike> bikeList = new ArrayList<>();
Bike bike = new Bike();
bike.setName("A");
bikeList.add(bike);
vehicles.setCarList(carList);
vehicles.setBikeList(bikeList);
return vehicles;
}
使用傳入參數的對象進行設置
public void setCarDetails(Vehicles vehicles){
List<Car> carList = new ArrayList<>();
Car car = new Car();
car.setName("Tesla Model S");
car.setBrand("Tesla");
car.setPrice(45000);
vehicles.setCarList(carList);
}
調用方法
public void processVehicles(){
Vehicles vehicles = new Vehicles();
//method1
vehicles = setVehiclesDetail();
//other codes to process vehicles
//method2
setVehiclesDetail(vehicles);
//other codes to process vehicles
}
注意:這回答了最初提出的問題,而不是顯着編輯的版本。
這些方法確實做了根本不同的事情,比較它們沒有多大意義:創建一個對象,設置一些屬性,然后返回它; 另一個在現有對象上設置屬性。
顯然,由於您的第一個版本創建了一個新的Car
,並且創建一個對象會消耗內存,從這個意義上說,第一個版本比第二個版本消耗更多的內存。 但是如果調用你的第二個版本的代碼必須創建Car
來傳遞給它,那么內存或性能沒有顯着差異。
有一個名為“setCarDetails”的方法不接受Car
來設置它們,這有點奇怪。 返回新車的方法通常會有一個反映這一點的名稱,例如“createCar”或“buildCar”或“buildCarWithDetails”。 但更典型的是,它只是一個構造函數(並且會接受要設置的細節,而不是對它們進行硬編碼,當然這會因用例而異)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.