是一种类型的无效?

时间:2011-09-26 19:10:35

标签: java void

我无法完全回答“我们为什么要打电话”无效“是'返回类型'?”

如何证明“ void ”是一种类型?

8 个答案:

答案 0 :(得分:9)

void不是类型,它也不是返回类型:

JLS 14.8中,您可以找到有关此类型的说明:

  

请注意   Java编程语言不允许“强制转换为无效” - void是   不是类型

答案 1 :(得分:8)

Java Language Specification says that

  

[...]每个变量和每个表达式都有一个可以在编译时确定的类型。类型可以是基本类型或引用类型。

void不是valid type。但是,void是有效的keyword,用于表示method does not return a value

Void JavaDoc还表示void是一个关键字:

  

Void类是一个不可实例化的占位符类,用于保存对表示Java关键字的Class对象的引用void

Integer JavaDoc对比:

  

Integer类在对象中包装基本类型int的值。 Integer类型的对象包含单个字段,其类型为int。

Void类代表void 关键字;而Integer类代表int 类型

答案 2 :(得分:2)

引用:

  

TYPE

     

public static final Class TYPE
  表示原始Java类型void的Class对象。

取自:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Void.html

或者我误解了这个问题?

答案 3 :(得分:2)

希望 class void解释了为什么void是一种类型。

  

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

public final class Void extends Object

答案 4 :(得分:1)

是的,void绝对是类型,意思是“没有”。 顺便说一下,你的意思是C(C ++,Objective-C,...)。 不能说任何语言,但在C(C ++,Objective-C,...)中,void是一种类型 但它是特殊的数据类型。你不能声明void类型的变量。这与任何其他类型都不同。 但是你可以声明指向void的指针。返回值为void的函数表示函数没有返回值,或者什么都不返回。这可能会使用无效类型的所有情况 void * v; / **声明变量v作为指向void * /
的指针 * v用作表达式中的左值可以指定任何类型的值而不进行类型转换。这就是为什么将无效类型引入语言的原因
你更新了你的问题,强调你在询问Java。 Java没有指针也没有函数。 void类型用于没有返回任何内容的方法的声明。

答案 5 :(得分:1)

任何类方法都必须指定返回类型。可以指定'void'关键字,指定它没有返回类型,例如:

public void SetPantsSize(int width);

还有一个空类: http://download.oracle.com/javase/6/docs/api/java/lang/Void.html

答案 6 :(得分:0)

Void是大多数语言中的一种类型,并且在典型的类型系统中,将它视为指定“无”的类型是最有意义的。您没有说明您的语言,但例如,在C#中,void关键字对应于.NET framework void type

答案 7 :(得分:-1)

void是Java语言中的一种类型(您可以直接在Java语言规范中阅读)。 但是类型void没有成员值,没有具体值将具有类型void。因此void用于表示方法在调用时不能返回值(即void是“无值”的类型)。