簡體   English   中英

Java 錯誤:未解析的編譯

[英]Java Error: unresolved compilation

當我運行以下代碼時,我收到錯誤 - 線程“main”java.lang.Error 中的異常:未解決的編譯問題:

at homework6.main(homework6.java:6)

我研究了為什么會發生這種情況,之前的答案說類名需要匹配 java 文件名,我的類也匹配 .java 文件的類名。 我還嘗試完全刪除“void”和整個語句,但隨后出現了一個新錯誤,提示我需要 public void main(String[] args)。 我遇到了與類和 .java 不同的問題嗎?

public class homework6 {

    public static void main(String[] args) {

        class Date {
            private int month;
            private int day;
            private int year;
            private String name;

            public Date() {

            }

            {
                month=1;
                day = 1;
                year = 2001;
                name = "January";
            }

            public Date(int m, int d, int y) {
                setDate(m, d, y);
            }

            public void setDate(int m, int d, int y) {
                month = m;
                day = d;
                year = y;

                if (m ==1 )
                    name="January";
                else if(m == 2)
                    name="February";
                else if(m == 3)
                    name="March";
                else if(m == 4)
                    name="April";
                else if(m == 5)
                    name = "May";
                else if(m == 6)
                    name = "June";
                else if(m == 7)
                    name = "July";
                else if(m == 8)
                    name = "August";
                else if(m == 9)
                    name = "September";
                else if(m == 10)
                    name = "October";
                else if(m == 11)
                    name="November";
                else if(m == 12)
                    name = "December";
            }

            public void showDate1() {
                System.out.println(month + "/" + day + "/" + year);
            }

            public void showDate2() {
                System.out.println(name + "" + day + "," + year);
            }

            public void showDate3() {
                System.out.println(day + "" + name + "" + year);
            }

        }
    }
}

您在一個方法中嵌套了一個類Date ,准確地說是 main 方法——這是您不能也不應該做的事情。

解決方案:不要這樣做。

創建一個名為 Date.java 的文件,並將您的 Date 類代碼放入其中。
創建一個名為 Homework6.java 的第二個文件,並將您的主要方法放入其中。

完畢。

有效點答案中的那些。 您也可以將類放在 main 之外並讓它編譯。

但是,如果您退后一步,並假設您編譯了這段代碼,那么預期的輸出是什么? 您似乎沒有調用任何方法。 你想花一點時間來理解你的邏輯嗎?

大概是因為這個:

public Date() {

}

{
    month=1;
    day = 1;
    year = 2001;
    name = "January";
}

前兩個括號應該去掉,因為后兩個之間的代碼不在方法中。 所以它應該是這樣的:

public Date() {
    month=1;
    day = 1;
    year = 2001;
    name = "January";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM