Search code examples
javavoid

On Void return type


If one needs return a Void type, which Javadoc describes as

A class that is an uninstantiable placeholder class to hold a reference to the Class object representing the Java keyword void.

Why does the following still require null to be returned?

public Void blah() {
    return null; // It seems to always want null
}

Solution

  • Void is a class like any other, so a function returning Void has to return a reference (such as null). In fact, Void is final and uninstantiable, which means that null is the only thing that a function returning Void could return.

    Of course public void blah() {...} (with a lowercase v) doesn't have to return anything.

    If you're wondering about possible uses for Void, see Uses for the Java Void Reference Type?