虽然java编译器允许一个源文件有多个顶级类,但是很容易出现问题。比如有一个Utensil.java源文件,定义为:

    1. class Dessert{
    2. public static String name = "Dessert";
    3. }
    4. class Utensil {
    5. public static String name = "Utensil";
    6. }

    还有一个Desert.java定义为:

    1. class Utensil {
    2. public static String name = "Utensil";
    3. }
    4. class Dessert{
    5. public static String name = "Dessert";
    6. }

    使用idea IDE会直接报错,显示 Duplicate class found in the file错误lei。
    结论:永远不要将多个顶级类放在一个源文件。