💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
这个问题的第一步是switch语句.最好不要在另外一个对象的基础上使用switch. 如果不得不使用,也应该在对象自己的数据上使用,而不是在别人数据上使用 Rental类 ~~~ public double getCharge(double thisAmount) { switch (getMovie().getPriceCode()) { case Movice.REGULAR: thisAmount += 2; if (getDaysRented() > 2) thisAmount += (getDaysRented() - 2) * 1.5; break; case Movice.NEW_RELEASE: thisAmount += getDaysRented() * 3; break; case Movice.CHILDRENS: thisAmount += 1.5; if (getDaysRented() > 3) thisAmount += (getDaysRented() - 3) * 1.5; break; } return thisAmount; } ~~~ 这暗示getCharge应该写到Movie类里面 Movice类 ~~~ public double getCharge(double thisAmount, Rental rental) { switch (rental.getMovie().getPriceCode()) { case REGULAR: thisAmount += 2; if (rental.getDaysRented() > 2) thisAmount += (rental.getDaysRented() - 2) * 1.5; break; case NEW_RELEASE: thisAmount += rental.getDaysRented() * 3; break; case CHILDRENS: thisAmount += 1.5; if (rental.getDaysRented() > 3) thisAmount += (rental.getDaysRented() - 3) * 1.5; break; } return thisAmount; } ~~~