为什么public void Void(){...}在Java中编译?

时间:2014-06-26 21:06:55

标签: java void

我有这段代码:

public class Test {
    public static void main(String[] args) {
        Void();
    }

    private static void Void() {
        System.out.print("Hello");
    }
}

由于java.lang.Void是Java中的一个类,为什么它可以作为方法名?

2 个答案:

答案 0 :(得分:10)

Void不是reserved keywordvoid,但Java区分大小写,因此void不等于Void)。同样,StringIntegerBoolean等也不会保留。

您可以使用Void命名您想要的名称:类,方法,字段。但能够做某事并不能自动意味着你应该这样做。通过使用已用于表示其他内容的名称命名方法(或其他内容)来创建混淆是不明智的。

答案 1 :(得分:0)

Java是一种完全面向对象的语言。这意味着所有东西,甚至原始类型(如int或double)在JDK中都有一个类对象。一些示例包括IntegerintBooleanbool等等。并且,由于Java中的每个对象都继承自类Object,因此这些对象使您能够使用装箱和拆箱(显式地将类实例作为Object实例转换为每个类型),包括基本类型。

Void只是Java中void关键字的占位符。它是一个不可实例化的对象,没有任何方法或属性。由于Void的全名是java.lang.Void,因此您可以在自己的命名空间中创建一个类对象甚至是同名的方法,只要您没有明确说明将java.lang.Void导入到您的类文件中。