首页 > 解决方案 > “ClassA object = new ClassA();”之间的区别 和“新的ClassA();”?

问题描述

我不知道这是否已经被问过,因为我在任何地方都找不到。

所以,最近我在 IntelliJ IDEA 中遇到了这个特性,它说的是转换表达式。

这是图片:

在此处输入图像描述

ClassA object = new ClassA();我想知道的是和之间有什么区别new ClassA();

是否有任何功能差异或其他任何可能以任何方式影响正常代码功能的东西?

标签: java

解决方案


如果您的代码包含变量

ClassA object = new ClassA();

您以后在代码中永远不会使用它,您可以消除变量和new ClassA()表达式。

但是,如果创建 的 实例ClassA()有一些与您的程序相关的副作用(即,ClassA即使您稍后不对创建的ClassA实例执行任何操作,您也需要执行 的构造函数),您可以将该语句替换为创建一个实例而不将其分配给变量:

new ClassA();

这样的声明清楚地表明,创建的实例不希望稍后通过以下代码访问。

但是,两个语句的功能相同(尽管第一个语句可能会导致警告说您声明了一个未使用的变量)。


推荐阅读