eBook – Guide Spring Cloud – NPI EA (cat=Spring Cloud)
announcement - icon

Let's get started with a Microservice Architecture with Spring Cloud:

>> Join Pro and download the eBook

eBook – Mockito – NPI EA (tag = Mockito)
announcement - icon

Mocking is an essential part of unit testing, and the Mockito library makes it easy to write clean and intuitive unit tests for your Java code.

Get started with mocking and improve your application tests using our Mockito guide:

Download the eBook

eBook – Java Concurrency – NPI EA (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook – Reactive – NPI EA (cat=Reactive)
announcement - icon

Spring 5 added support for reactive programming with the Spring WebFlux module, which has been improved upon ever since. Get started with the Reactor project basics and reactive programming in Spring Boot:

>> Join Pro and download the eBook

eBook – Java Streams – NPI EA (cat=Java Streams)
announcement - icon

Since its introduction in Java 8, the Stream API has become a staple of Java development. The basic operations like iterating, filtering, mapping sequences of elements are deceptively simple to use.

But these can also be overused and fall into some common pitfalls.

To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:

>> Join Pro and download the eBook

eBook – Jackson – NPI EA (cat=Jackson)
announcement - icon

Do JSON right with Jackson

Download the E-book

eBook – HTTP Client – NPI EA (cat=Http Client-Side)
announcement - icon

Get the most out of the Apache HTTP Client

Download the E-book

eBook – Maven – NPI EA (cat = Maven)
announcement - icon

Get Started with Apache Maven:

Download the E-book

eBook – Persistence – NPI EA (cat=Persistence)
announcement - icon

Working on getting your persistence layer right with Spring?

Explore the eBook

eBook – RwS – NPI EA (cat=Spring MVC)
announcement - icon

Building a REST API with Spring?

Download the E-book

Course – LS – NPI EA (cat=Jackson)
announcement - icon

Get started with Spring and Spring Boot, through the Learn Spring course:

>> LEARN SPRING
Course – RWSB – NPI EA (cat=REST)
announcement - icon

Explore Spring Boot 3 and Spring 6 in-depth through building a full REST API with the framework:

>> The New “REST With Spring Boot”

Course – LSS – NPI EA (cat=Spring Security)
announcement - icon

Yes, Spring Security can be complex, from the more advanced functionality within the Core to the deep OAuth support in the framework.

I built the security material as two full courses - Core and OAuth, to get practical with these more complex scenarios. We explore when and how to use each feature and code through it on the backing project.

You can explore the course here:

>> Learn Spring Security

Course – LSD – NPI EA (tag=Spring Data JPA)
announcement - icon

Spring Data JPA is a great way to handle the complexity of JPA with the powerful simplicity of Spring Boot.

Get started with Spring Data JPA through the guided reference course:

>> CHECK OUT THE COURSE

Partner – Moderne – NPI EA (cat=Spring Boot)
announcement - icon

Refactor Java code safely — and automatically — with OpenRewrite.

Refactoring big codebases by hand is slow, risky, and easy to put off. That’s where OpenRewrite comes in. The open-source framework for large-scale, automated code transformations helps teams modernize safely and consistently.

Each month, the creators and maintainers of OpenRewrite at Moderne run live, hands-on training sessions — one for newcomers and one for experienced users. You’ll see how recipes work, how to apply them across projects, and how to modernize code with confidence.

Join the next session, bring your questions, and learn how to automate the kind of work that usually eats your sprint time.

Course – LJB – NPI EA (cat = Core Java)
announcement - icon

Code your way through and build up a solid, practical foundation of Java:

>> Learn Java Basics

Partner – LambdaTest – NPI EA (cat= Testing)
announcement - icon

Distributed systems often come with complex challenges such as service-to-service communication, state management, asynchronous messaging, security, and more.

Dapr (Distributed Application Runtime) provides a set of APIs and building blocks to address these challenges, abstracting away infrastructure so we can focus on business logic.

In this tutorial, we'll focus on Dapr's pub/sub API for message brokering. Using its Spring Boot integration, we'll simplify the creation of a loosely coupled, portable, and easily testable pub/sub messaging system:

>> Flexible Pub/Sub Messaging With Spring Boot and Dapr

1. Overview

In this tutorial, we’ll learn how to convert between a boolean and an int value. First, we’ll look at how Java handles these two primitive data types; then, we’ll explore multiple approaches to facilitate conversions between a boolean and an int.

2. Data Types

In Java, an integer can be represented by the int primitive data type or the Integer wrapper class. The primitive data type is a 32-bit signed integer represented by the Two’s Complement encoding method. The Integer class serves as a wrapper that allows you to perform unsigned integer operations, as well as to treat integer (primitive) values as objects to work with Generics.

On the other hand, boolean values don’t have a specific size in memory, but it defaults to the Operating System and Java Virtual Machine (JVM). Similarly, like all primitive data types in Java, boolean has the Boolean wrapper class that allows boolean values to behave like objects.

We can leverage the primitive value and the wrapper class of both data types (boolean and int) to perform the data conversion. Assuming that the true and false boolean values represent 1 and 0, respectively, we have multiple approaches to make a conversion.

3. Primitive boolean to int

To convert a primitive boolean value into an int, we evaluate the condition of the expression to determine the integer we want to return:

public int booleanPrimitiveToInt(boolean foo) {
    int bar = 0;
    if (foo) {
        bar = 1;
    }
    return bar;
}

We can simplify this function by using the ternary operator:

public int booleanPrimitiveToIntTernary(boolean foo) {
    return (foo) ? 1 : 0;
}

This approach uses primitive data types (boolean and int) to make the conversion. As a result, we obtain 1 when the boolean expression is true. Otherwise, the method returns 0.

4. Wrapper Class

Using the Boolean wrapper class, we have a couple of approaches to do the conversion:

  • We can leverage the static methods from the Boolean class.
  • We can call the methods directly from the Boolean object.

4.1. Static Methods

The Boolean class has a compare method that we can use as follows:

public static int booleanObjectToInt(boolean foo) {
    return Boolean.compare(foo, false);
}

Recall that the static compare method returns if both arguments have the same value. In other words, when foo is false, the comparison will result in 0. Otherwise, the function returns when the first argument is true and the second argument is false.

Similarly, we can use the same static method, changing the second argument to true:

public static int booleanObjectToIntInverse(boolean foo) { 
    return Boolean.compare(foo, true) + 1;
}

This time, if foo is true, the compare method evaluates two arguments of the same value, which results in 0. However, adding 1 to the result will return the expected integer value from a truthy boolean variable.

4.2. Boolean Class Object

The Boolean class object has functions such as compareTo that we can use:

public static int booleanObjectMethodToInt(Boolean foo) {
    return foo.compareTo(false);
}

Using the method booleanObjectMethodToInt, we can convert a boolean value to an integer the same way we did with the static method. Similarly, you can apply the reversed version by changing the argument to true and adding 1 to the result.

5. Apache Commons

Apache Commons is a popular open-source library for Java that provides utility class, such as BooleanUtils. We can add the library as a dependency in Maven as follows:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

Once the library is in our pom.xml file, we can use the BooleanUtils class to convert boolean values to integer:

public static int booleanUtilsToInt(Boolean foo) {
    return BooleanUtils.toInteger(foo);
}

Like the example method booleanPrimitiveToIntTernary, internally, the toInteger method performs the same ternary operator to make the conversion.

6. Converting int to boolean

Having explored multiple techniques for converting boolean values to int values, let’s now shift our focus to the reverse process: converting an int value to a boolean.

First, we’ll follow this rule to perform the int to boolean conversion:

  • true – The int value is 1
  • false – The int value is 0
  • Throwing an exception if the int value is neither 1 nor 0

6.1. Using if or if-else Statements

To achieve the conversion, we can use if/if-else statements, for example:

boolean intToBooleanWithThrowing(int theInt) {
    if (theInt == 1) {
        return true;
    }
    if (theInt == 0) {
        return false;
    }
    throw new IllegalArgumentException("Only 0 or 1 is allowed.");
}

6.2. Using the BooleanUtils.toBoolean() Method

The BooleanUtils class from the Apache Commons Lang3 library also provides the BooleanUtils.toBoolean(int value, int trueValue, int falseValue) method to convert an int value to a boolean.

This method has three arguments:

  • value – The int value to be converted
  • trueValue – If value equals trueValue, the method returns true
  • falseValue – If value equals falseValue, the method returns false

Further, if value doesn’t equal either trueValue or falseValue, an IllegalArgumentException will be thrown:

public static boolean toBoolean(final int value, final int trueValue, final int falseValue) {
    if (value == trueValue) {
        return true;
    } else if (value == falseValue) {
        return false;
    } else {
        throw new IllegalArgumentException("The Integer did not match either specified value");
    }
}

Next, let’s demonstrate how to use this method through a unit test:

int trueValue = 1;
int falseValue = 0;
 
assertTrue(BooleanUtils.toBoolean(1, trueValue, falseValue));
assertFalse(BooleanUtils.toBoolean(0, trueValue, falseValue));
assertThrows(IllegalArgumentException.class, () -> BooleanUtils.toBoolean(42, trueValue, falseValue));
assertThrows(IllegalArgumentException.class, () -> BooleanUtils.toBoolean(-42, trueValue, falseValue));

6.3. Other Conversion Rules

Sometimes, we may need to implement different conversion rules, for example:

  • true – If the int value is positive, otherwise false
  • true – If the int value is 1, otherwise false
  • true – If the int value is non-zero, otherwise false

A common way to implement these conversions is using boolean expressions.

For simplicity, let’s assume that we want to convert an integer to true if it’s positive. Otherwise, we’ll convert it to false.

Then, the boolean expression “theInt > 0” does the job:

boolean intToBoolean(int theInt) {
    return theInt > 0;
}

Additionally, the BooleanUtils class provides another toBoolean(int value) method to convert an int value to a boolean. This method accepts only one int argument.

Similar to our intToBoolean() implementation, toBoolean(int value) also uses a boolean expression. The method returns false if the int value is zero. Conversely, it returns true for any non-zero value:

public static boolean toBoolean(final int value) {
    return value != 0;
}

7. Conclusion

In this tutorial, we’ve learned how to convert a boolean into an integer value. Assuming that true translates to and false translates to 0, we explored different implementations to achieve this conversion. Additionally, we discussed how to convert an integer value to a boolean.

The code backing this article is available on GitHub. Once you're logged in as a Baeldung Pro Member, start learning and coding on the project.
Baeldung Pro – NPI EA (cat = Baeldung)
announcement - icon

Baeldung Pro comes with both absolutely No-Ads as well as finally with Dark Mode, for a clean learning experience:

>> Explore a clean Baeldung

Once the early-adopter seats are all used, the price will go up and stay at $33/year.

eBook – HTTP Client – NPI EA (cat=HTTP Client-Side)
announcement - icon

The Apache HTTP Client is a very robust library, suitable for both simple and advanced use cases when testing HTTP endpoints. Check out our guide covering basic request and response handling, as well as security, cookies, timeouts, and more:

>> Download the eBook

eBook – Java Concurrency – NPI EA (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook – Java Streams – NPI EA (cat=Java Streams)
announcement - icon

Since its introduction in Java 8, the Stream API has become a staple of Java development. The basic operations like iterating, filtering, mapping sequences of elements are deceptively simple to use.

But these can also be overused and fall into some common pitfalls.

To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:

>> Join Pro and download the eBook

eBook – Persistence – NPI EA (cat=Persistence)
announcement - icon

Working on getting your persistence layer right with Spring?

Explore the eBook

Course – LS – NPI EA (cat=REST)

announcement - icon

Get started with Spring Boot and with core Spring, through the Learn Spring course:

>> CHECK OUT THE COURSE

Partner – Moderne – NPI EA (tag=Refactoring)
announcement - icon

Modern Java teams move fast — but codebases don’t always keep up. Frameworks change, dependencies drift, and tech debt builds until it starts to drag on delivery. OpenRewrite was built to fix that: an open-source refactoring engine that automates repetitive code changes while keeping developer intent intact.

The monthly training series, led by the creators and maintainers of OpenRewrite at Moderne, walks through real-world migrations and modernization patterns. Whether you’re new to recipes or ready to write your own, you’ll learn practical ways to refactor safely and at scale.

If you’ve ever wished refactoring felt as natural — and as fast — as writing code, this is a good place to start.

eBook Jackson – NPI EA – 3 (cat = Jackson)
2 Comments
Oldest
Newest
Inline Feedbacks
View all comments