为什么不能使用Void作为main方法的返回类型

时间:2016-07-07 07:14:18

标签: java void main-method

所以我想测试Void类型然后我写了这个简单的程序:

package ehsan;

public class NumTest {
    public static Void main(String[] args) {
        System.out.println("Hello, World!");
        return null; /* The compiler forced me to do so. I just can't realize what is the point in returning in Void type!? */
    }
}

所以现在当我想编译时,编译器抱怨:

main method must return a value of type void

为什么编译器看不到我没有返回任何内容并使用Void

4 个答案:

答案 0 :(得分:4)

您应该使用5(小写void)而非v对象。 Void对象不会像例如一样进行自动装箱Void / int,请参阅Java Language Specification以获取自动装箱对象列表。

Integer不是Void的包装器,它只是一个名称非常相似的对象,因此可以在需要指定返回类型的位置使用(例如void 1}}),它仅用于文档目的,并解决一些泛型类返回类型。

第二个用例正在反思中(当你想检查Callable<T>函数的返回值时,你会得到void)。

正确的行是:

Void.TYPE

答案 1 :(得分:2)

Void是一个类类型,因此编译器希望您为它返回一个值。您应该使用小写字母void

错误原因:

  

main方法必须返回void

类型的值

是由于main方法应该始终返回void的规则 - 这是一个java关键字而不是类类型。

答案 2 :(得分:1)

您必须使用void代替Void

像这样:

public static void main(String[] args)

答案 3 :(得分:1)

  

错字错误。

void而非Void

Void是java中的一个类。来自Docs

  

Void类是一个不可包含的占位符类来保存   引用表示Java关键字void的Class对象。