Home >Java >javaTutorial >Why Does Java Throw 'Incompatible types: void cannot be converted to ...'?

Why Does Java Throw 'Incompatible types: void cannot be converted to ...'?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 14:35:13478browse

Why Does Java Throw

Understanding Incompatible Types: Void Cannot Be Converted

The Java compiler error message "Incompatible types: void cannot be converted to ..." indicates an attempt to use a method that does not return a value in a manner that requires a return value.

What Does Void Mean?

Void is a unique type in Java that signifies "no value." Methods declared as void do not return any result.

Causes of the Error

This error arises when:

  • A method declared as void is called, and the code tries to assign its return value to a variable or use it in an expression.
  • A method expects a return value of a specific type, but the method called returns void.

How to Fix the Error

The solution depends on the desired behavior:

  • If the method should return a value: Modify the method declaration to return the appropriate type (e.g., int, String).
  • If the method does not need to return a value: Omit the assignment or use the method without attempting to use its return value.

Detailed Example

Consider the following code:

public class Test {
    private static void add(int a, int b) {
        int res = a + b;
    }

    public static void main(String[] args) {
        int sum = add(1, 1);
    }
}

When compiled, this code results in the error:

error: incompatible types: void cannot be converted to int

This is because the add method is declared as void, yet the call to it in the main method attempts to assign its return value to an int variable. To fix this:

  • Option 1: Change the add method to return the result:
private static int add(int a, int b) {
    int res = a + b;
    return res;
}
  • Option 2: Omit the assignment in the main method:
public static void main(String[] args) {
    add(1, 1);
}

The above is the detailed content of Why Does Java Throw 'Incompatible types: void cannot be converted to ...'?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn