Exploring New Options for Property Naming in Java: Moving Beyond PropertyNamingStrategy.SNAKE_CASE

Published on 2024.02.12


In Java, naming conventions play a crucial role in code readability and maintainability. One important aspect of naming is how we name our properties or variables. Traditionally, Java follows the camelCase convention, but with the release of Jackson 2.10, we now have more flexibility in choosing different property naming strategies.

In this article, we will explore the new options available for property naming in Java and compare them to the traditional camelCase and snake_case naming conventions. We will also discuss how to implement and customize these naming strategies using Jackson's PropertyNamingStrategy.

Traditional Naming Conventions


Camel case is the most widely used naming convention in Java. It involves writing compound words or phrases where each word starts with a capital letter except the first one.

Example: firstName, lastName, emailAddress


Snake case is another popular naming convention, often used in languages like Python. It involves writing compound words or phrases in lowercase, with words separated by underscores.

Example: first_name, last_name, email_address

New Property Naming Strategies


This naming strategy follows the traditional camelCase convention. It is the default strategy used by Jackson.

Example: firstName, lastName, emailAddress


This strategy is similar to camelCase but differs in that the first letter is capitalized.

Example: FirstName, LastName, EmailAddress


This strategy converts property names to lowercase.

Example: firstname, lastname, emailaddress


This strategy converts property names to snake case.

Example: first_name, last_name, email_address


This strategy converts property names to kebab case, where words are separated by hyphens.

Example: first-name, last-name, email-address

Implementing Custom Naming Strategies

Jackson allows us to implement custom naming strategies by extending the PropertyNamingStrategy class.

We need to override the translate method and provide our own logic for transforming property names.


public class CustomNamingStrategy extends PropertyNamingStrategy {
    public String translate(String propertyName) {
        // Custom logic for translating property names


With the release of Jackson 2.10, we now have more flexibility in choosing property naming strategies in Java. While the traditional camelCase and snake_case conventions are still widely used, the new options provided by Jackson allow for greater customization and consistency in our codebase. By choosing the right naming strategy, we can improve code readability and maintainability.