Naming conventions of composed package names

JavaPackageNaming Conventions

Java Problem Overview


I want to create a package named form validator.

Is it better to write

  • form_validator,
  • formValidator or
  • formvalidator?

I want to mention that I want to avoid form.validator. And that form-validator is forbidden.

Java Solutions


Solution 1 - Java

From the documentation on package naming convention:

> Package names are written in all lower case to avoid conflict with the names of classes or interfaces

So this would leave you with the following two possibilities:

form_validator
formvalidator

Actually the documentation also makes it clear that underscore plays a special role when it appears in package names:

> if the package name begins with a digit or other character that is illegal to use as the beginning of a Java name, or if the package name contains a reserved Java keyword, such as "int" ... the suggested convention is to add an underscore.

So, underscore is suggested only in special cases, into which your naming problem does not seem to fall. So I would recommend formvalidator as the package name.

Solution 2 - Java

The most conventional one would be the 3rd one: formvalidator.

The Google Java Style guide notes:

> 5.2.1 Package names > > Package names are all lowercase, with consecutive words simply concatenated together (no underscores). For example, com.example.deepspace, not com.example.deepSpace or com.example.deep_space.

As @teppic said, the Oracle Java Docs state that

> Package names are written in all lower case to avoid conflict with the names of classes or interfaces.

Solution 3 - Java

In Java package names are written in all lower case. Which means following would be the most ideal packaging name.

formvalidator

This is also accepted.

form_validator 

Solution 4 - Java

Package names are written in all lower case to avoid conflict with the names of classes or interfaces. So

  • form_validator or
  • formvalidator.

For details see here.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMohamed TaboubiView Question on Stackoverflow
Solution 1 - JavaTim BiegeleisenView Answer on Stackoverflow
Solution 2 - JavasrathView Answer on Stackoverflow
Solution 3 - JavaDu-LacosteView Answer on Stackoverflow
Solution 4 - JavaRafiqul HasanView Answer on Stackoverflow