为什么 Android SDK 中的某些方法接受数组作为参数而不是返回数组?
Why are some methods in the Android SDK accept an array as a parameter instead of returning an array?
所以我正在开发 android 应用程序。我遇到了 Color
class。我看到它的方法之一是 colorToHSV
。仅从名称来看,我认为它会 return 一个浮点数组 (HSV)。但是,它 return 无效!它接受一个数组作为参数!我假设它会修改传入的数组。但是为什么它必须这样做呢?只是 return 一个数组!我在 Parcel
.
中的 readBooleanArray
中也看到了这种模式
为什么要这样声明方法?这是某种模式吗?
But why does it have to do this?
通常,这种编码模式旨在鼓励对象的回收,避免每次都分配新的对象。
这在 Android 中尤为重要,与之前 Android 5.0、the garbage collector was non-compacting 一样(甚至 ART 的 Android 5.0+ 垃圾收集器仅在应用程序处于的背景)。创建许多小对象,即使它们被垃圾收集,也意味着您的堆变得碎片化,从而抑制您将来进行分配的能力。
所以我正在开发 android 应用程序。我遇到了 Color
class。我看到它的方法之一是 colorToHSV
。仅从名称来看,我认为它会 return 一个浮点数组 (HSV)。但是,它 return 无效!它接受一个数组作为参数!我假设它会修改传入的数组。但是为什么它必须这样做呢?只是 return 一个数组!我在 Parcel
.
readBooleanArray
中也看到了这种模式
为什么要这样声明方法?这是某种模式吗?
But why does it have to do this?
通常,这种编码模式旨在鼓励对象的回收,避免每次都分配新的对象。
这在 Android 中尤为重要,与之前 Android 5.0、the garbage collector was non-compacting 一样(甚至 ART 的 Android 5.0+ 垃圾收集器仅在应用程序处于的背景)。创建许多小对象,即使它们被垃圾收集,也意味着您的堆变得碎片化,从而抑制您将来进行分配的能力。