Java 中的命名约定“of”是什么意思?

2022-08-31 12:20:58

正如我们在Java 8中看到的,有许多名为“of”的方法,如Stream.of()Optional.of(),以及许多库,如Akka中的actorOf

这个“的”是什么意思?是英文单词“of”还是“Object Factory”之类的缩写?


答案 1

是的,这是一个英语单词。通常选择它,以便表达式读起来像英语短语。例如,它应该看起来像“三和四的流”,这有点像“由数字三和四组成的流”的缩短版本。Stream.of(3, 4)


答案 2

传统上,如果您查看包装器类,它们都包含用于构建给定值类型的包装器类的实例的方法。valueOf(XXX)

Integer.valueOf(int)
Double.valueOf(double)
Float.valueOf(float)

Java 从第 1 天起就遵循此命名约定。同样,大多数Java-8引入的类都包含这种方法。of(...)

Stream.of(...)
LocalDate.of(year, month, dayOfMonth)
Instant.ofEpochSecond(epochSecond)
and many more.

不仅有可用的方法,而且在不同的类中,它还有几个方法可以服务于特定目的或类型的任务,并且它们已经分配了表示该任务的最佳合适名称。valueOfof

  • parseXXX():用于解析给定的字符串输入。示例:等Integer.parseInt(str), Double.parseDouble(), Date.parse(datestr)
  • get(field):从对象中检索字段信息。示例:等Calendar.get(field), LocalDate.get(TemporalField)
  • format():转换为不同的表示形式。示例:等String.format(), SimpleDateFormat.format(), DateTimeFormatter.format()

这些命名约定在 Java8 DateTime API 中被大量使用。查看此方法命名约定


推荐