2016-04-16 6 views
0
public class OuterClass { 
    public static void main(String[] args) { 
     System.out.println("Hello !"); 
    } 

    private class String { 
     int i = 10; 
    } 
} 

Der obige Code kompiliert feineIn Java, warum wir kippen eine innere Klasse mit dem Namen als String verwenden, wenn die übergeordnete Klasse psvm

hat Als ich versuchte, den obigen Code auszuführen, es wirft Fehler als "Fehler : Hauptmethode nicht in der Klasse gefunden, bitte definieren Sie die Hauptmethode als: public static void main (String [] args) ". Gibt es einen Grund, warum eine solche Laufzeitausnahme auftritt?

+0

Danke @Tunaki! – Shivaprasad

Antwort

7

Da Ihre innere Klasse eine höhere Sichtbarkeit hat als java.lang.String; Sie haben also die Signatur main geändert. Ändern Sie Ihre main wie

public static void main(java.lang.String[] args) { 
    System.out.println("Hello !"); 
} 

Oder benennen Sie Ihre Klasse String.

+0

Es funktioniert! Danke @Eliot Frisch! – Shivaprasad

Verwandte Themen