【问题标题】:In Java source code, what does "Offloaded for" mean?在 Java 源代码中,“卸载”是什么意思?
【发布时间】:2013-11-22 23:40:47
【问题描述】:

HashMapjava.util 源代码中,重构出的方法putForNullKeygetForNullKey 带有注释:

/**
 * Offloaded version of put for null keys
 */
private V putForNullKey(V value) {

在这种情况下,“卸载”是什么意思?重构,还是更微妙的东西?

【问题讨论】:

  • 我从未在 OOP 或 Java 上下文中听到过这个词。首先想到的是TCP offloading,它允许 CPU 将一些工作卸载到 NIC。

标签: java java-7 jls


【解决方案1】:

这没什么特别的。如果键是 null,他们只是决定为 put-logic 提供单独的代码,然后他们将该代码与非空代码分离到方法 putForNullKey 中。

当您查看 put 时,您会发现检查空键的 if 子句 - 如果是的话 - 委托给 putForNullKey

public V put(K key, V value) {
    if (key == null)
        return putForNullKey(value);

    // ... here comes the put code for non-null-keys
}

【讨论】:

  • 很好的解释。我仍然不会使用“卸载”一词。我个人认为“特例”更有意义。
猜你喜欢
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 2012-12-11
  • 2021-11-29
  • 1970-01-01
  • 2013-06-06
  • 2012-01-01
  • 1970-01-01
相关资源
最近更新 更多