例如。
new SportsCar().drive();
vs。
SportsCar sc = new SportsCar();
sc.drive();
假设您目前没有理由再次需要使用SportCar实例?
答案 0 :(得分:1)
在您的示例中,临时保存引用与不保存引用之间没有区别。编译器很可能内联两行版本,看起来像单行版本。
虽然还有其他原因,但它很有用。例如,您可能想以不同于drive()
方法的方式处理构造函数的异常:
SportsCar sc;
try {
sc = new SportsCar();
try {
sc.drive();
} catch (Exception e) {
// handle exceptions thrown by drive()
}
} catch (Exception e) {
// handle exceptions thrown during object construction
}