Именование для статических полей final java.io.File не является стандартным - PullRequest
1 голос
/ 23 апреля 2011

Я готовлюсь к SCJP и заметил интересную вещь.

Соглашения о присвоении имен Sun не используются для констант:

File.separatorChar
File.separator
File.pathSeparatorChar
File.pathSeparator

Как это можно объяснить?

Может быть, какая-то историческая проблема или просто опечатка?

1 Ответ

4 голосов
/ 23 апреля 2011

Технически, ни одна из них не является константой (см. Определение константного выражения ).Значение константы известно во время компиляции.Я полагаю, что соглашение об именах в верхнем регистре с подчеркиванием применимо только к фактическим константам, а не только к любому полю static final.Что касается того, почему они не являются константами, они, конечно, зависят от файловой системы, и их нужно искать в текущей файловой системе во время выполнения.

(Однако в коде Java очень распространено использованиеодинаковое соглашение об именах для всех полей static final независимо от того, являются ли они технически постоянными или нет.)

...