2013-05-20 36 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"); 
} 

}