gpt4 book ai didi

java - 字符串类造成混淆

转载 作者:太空狗 更新时间:2023-10-29 22:43:23 26 4
gpt4 key购买 nike

最近我在java中遇到了一个错误

Exception in thread "main" java.lang.NoSuchMethodError: main

即使我的类(class)只有 3 行代码。

public class Test{
public static void main(String[] args){
System.out.println("hello");
}
}

我想知道为什么会发生这种情况,但后来我知道有一个公共(public)类 String,我已经在同一个包中尝试并创建了它。

所以现在出现了新的问题,尽管 String 不是在 java 中定义的关键字(您可以在您的代码中使用),但在这种情况下会发生什么

然后我刚刚从包中删除了 String.java 和 String.class 文件,但是您不能同时使用 String 类听起来很奇怪。

问题:java是否优先考虑我们的自定义类?

最佳答案

你的main方法需要匹配

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

如果你在你的 main 方法所在的同一个包中创建你自己的 String 类,它将变成

 public static void main(your.own.package.String[] args){ ... }

这是有效的,但将不再允许运行时启动程序找到 main 方法,因为它需要 java.lang.String[] 作为参数。

默认情况下,java.lang 中的类会自动导入,因此您不需要显式的 import 语句 - 这可能会让您更加困惑。

根据经验,我会尽可能避免将自己的类命名为与 Java 运行时中的类相同的名称 - 特别是 java.lang

另见 JLS: Chapter 7. Packages :

A package consists of a number of compilation units (§7.3). A compilation unit automatically has access to all types declared in its package and also automatically imports all of the public types declared in the predefined package java.lang.

关于java - 字符串类造成混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21476504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com