2016-07-07 7 views
5

için dönüş türü olarak Void kullanamazsınız: Yani şimdi derlemek istediğinizdeNeden Yani o zaman bu basit program yazdım <code>Void</code> tipini test etmek istedim ana yönteme

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!? */ 
    } 
} 

, derleyici yakınır:

main method must return a value of type void 

Neden derleyici hiçbir şey iade ediyorum ve Void kullanıyorum olduğunu göremiyoruz?

+5

'Void' ve' void' değil aynıdır. – Eran

+3

Çünkü standart ana yöntemin imzasını 'public static void main (String ... args) 'olarak tanımlar. Otomatik kutulama/kutuklamanın, yöntem imzaları ile ilgisi yoktur. Bir imzayı otomatik olarak imzalayamazsınız. – tkausl

+3

Void, void – Eran

cevap

4

void (küçük harf v) Void nesnesini kullanmalısınız. Void nesnesi, örn. Otomatik kutulama nesnelerinin bir listesi için bkz. Java Language Specification.

Void

buna sen (ör Callable<T> gibi) dönüş türü belirtmeniz gerekir yerlerde kullanılabilmesi için çok benzer bir isme sahip sadece bir nesnedir, void için bir sarıcı değil, dokümantasyon amaçlı olduğunu ve geçici çözüm bazı genel sınıflar türlerini döndürür.

İkinci kullanım durumu yansımalıdır (void işlevinin dönüş değerini kontrol etmek istediğinizde, Void.TYPE alırsınız).

Doğru çizgidir:

+0

Yani 'Void' tek kullanımı genel türlerini belirtiyor? (Yeni sorularım için özür dilerim :) –

+0

Genellikle, "Void" belgelerinde yazıldığı için yansıma ile ilgili başka kullanım durumları vardır: * Void sınıfı, temsil eden Sınıf nesnesine bir başvuru tutacak, asılsız bir yer tutucu sınıftır. Java anahtar kelimesi geçersiz.* –

2

Void bir sınıf türü olduğundan, derleyici bunun için bir değer döndürmek için beklemektedir. Küçük harfle void kullanmalısınız.

Hatanın sebebinin:

main method must return a value of type void

ana yöntem daima void dönmelidir kurala bağlı - bir java anahtar kelime değil bir sınıf türüdür.

1

yerine bu gibi Void

ait void kullanmak zorunda:

1

Typo error.

O void değil Void O Void oldu edilir

java bir sınıftır. Dokümanlar

itibaren

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

+0

Hiçbir adam hata hatası yok, ben sadece 'Void' test ediyorum :) –

+0

Tutulmam söyleniyor Bu yöntem, Void –

+0

türünde bir sonucu döndürmelidir Unutmayın ki void, 'Void'den farklıdır .... –

İlgili konular