Java方法命名约定toType和asType的区别



我正在阅读《高效Java》一书,我对方法的命名约定有一个问题,我应该何时使用toType和asType?例如,我们有toString、toArray和asList。为什么我们不把它叫做toList而不是使用asList?

这听起来像个白痴问题,但我只是好奇其中的区别?

我从不同的线程中读到,"如果方法返回相同的实例,但强制转换为另一个类型,请使用AsXXX方法。如果方法使用对象数据构造不相关类型的新实例,请使用ToXXX方法。"但为什么在Java中,从数组到列表和从列表到数组不同?

asXtoX之间的差异可以用Arrays.asList来说明。

Arrays.asList获取一个数组并创建一个由该数组支持的列表:

返回由指定数组支持的固定大小列表。(对返回列表的更改"写入"到阵列。)

它不会创建一个独立的列表。

另一方面,像toStringtoArray这样的方法创建一个独立于创建它的输入的新实例。

换句话说,asX获取一个类型的对象,并创建不同类型的对象的视图。toX获取一个输入对象并创建一个由该输入对象初始化的不同类型的新对象。

最新更新