为什么我们必须在调用适当的批量操作之前复制一组?

Joh*_*nna -4 java

为什么我必须在调用批量操作之前编写第一个语句?

Set<Type> union = new HashSet<Type>(s1);
union.addAll(s2);
Run Code Online (Sandbox Code Playgroud)

coo*_*ird 7

必须在调用方法之前实例化对象.

在这种情况下,尝试addAll在null对象上调用该方法将导致a NullPointerException.因此,Set union必须首先以某种方式构造对象,然后才能以任何有意义的方式使用它.


我认为重新审视给定的代码并尝试理解代码试图完成的内容是个好主意.

Set<Type> union = new HashSet<Type>(s1);
union.addAll(s2);
Run Code Online (Sandbox Code Playgroud)

上面的代码告诉我以下内容:

  1. 让我们HashSet从现有元素中创建一个新元素Collection s1(我假设它是另一个元素Set.)

  2. 新创建HashSet将被存储为一个Set名为union-代码似乎暗示,这种新的Set将要代表某种联盟.

  3. 对于union,来自另一个Collection(可能是另一个Set被调用的s2)的元素将被该addAll方法添加.

  4. 现在,我认为该union对象包含Sets s1和的联合s2.

在编写代码时,应该注意尝试告诉别人代码打算做什么.让代码解释它正在做什么将导致更易读和可维护的代码,这将使其他人阅读和理解更容易(并且可能是愉快).