2013-05-20 49 views
4

我新的Java和我下面的一些指示,但是當我到Strings節的Java蝕字符串錯誤

public class String { 
    public static void main(String[] args) { 
     java.lang.String name; 
     name = "luke"; 
     System.out.println("Hello, " + name + "pleased to meet you"); 
    } 
} 

,但我得到

Error: Main method not found in class String, please define the main method as: 
    public static void main(String[] args) 

回答

5

由於類被命名爲字符串,它被編譯器推斷爲主方法的參數類型。

嘗試完全限定的參數類型,而不是:

public static void main(java.lang.String[] args) { 
... 

或者更好的是,重命名你的類使用和非java.lang中的類名。

5

對於name變量,您注意完全限定您對java.lang.String的參考資格,但對args參數的參數不適用main

使用

public static void main(java.lang.String[] args) { 

當然,這一切都導致因爲你命名你的類String,相同的名稱作爲一個內置的Java類。也許你可以把它命名爲StringTest?這將避免擔心類名碰撞,並完全限定Java內置String

2

當你的類隱藏java.lang.String名字,你需要寫

public static void main(java.lang.String[] args) { 

更好的通話類StringTest或別的東西,爲了避免這種混亂。

public class StringTest { 
    public static void main(String[] args) { 
     String name = "luke"; 
     System.out.println("Hello, " + name + "pleased to meet you"); 
    } 
} 
6

如果您堅持使用String作爲你的類名應該是:

public class String { 
    public static void main(java.lang.String[] args) { 
     java.lang.String name; 
     name = "luke"; 
     System.out.println("Hello, " + name + "pleased to meet you"); 
    } 
} 

我不認爲這是特別明智的嘗試和再利用的班java.lang定義雖然名字。

+0

啊,所以這是個問題..棘手! – Coffee

0

你爲什麼不試試這個

public class StringFirstTry { 
public static void main(String[] args) { 
    String name; 
    name = "luke"; 
    System.out.println("Hello, " + name + "pleased to meet you"); 
} 

}