Java 中的命名约定“of”是什么意思?
2022-08-31 12:20:58
正如我们在Java 8中看到的,有许多名为“of”的方法,如Stream.of()
,Optional.of()
,以及许多库,如Akka中的actorOf
。
这个“的”是什么意思?是英文单词“of”还是“Object Factory”之类的缩写?
正如我们在Java 8中看到的,有许多名为“of”的方法,如Stream.of()
,Optional.of()
,以及许多库,如Akka中的actorOf
。
这个“的”是什么意思?是英文单词“of”还是“Object Factory”之类的缩写?
是的,这是一个英语单词。通常选择它,以便表达式读起来像英语短语。例如,它应该看起来像“三和四的流”,这有点像“由数字三和四组成的流”的缩短版本。Stream.of(3, 4)
传统上,如果您查看包装器类,它们都包含用于构建给定值类型的包装器类的实例的方法。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.
不仅有可用的方法,而且在不同的类中,它还有几个方法可以服务于特定目的或类型的任务,并且它们已经分配了表示该任务的最佳合适名称。valueOf
of
Integer.parseInt(str), Double.parseDouble(), Date.parse(datestr)
Calendar.get(field), LocalDate.get(TemporalField)
String.format(), SimpleDateFormat.format(), DateTimeFormatter.format()
这些命名约定在 Java8 DateTime API 中被大量使用。查看此方法命名约定