2011-02-28 122 views
1

我收到一個錯誤「無法找到符號方法添加(java.util.Date)」,雖然我通過它被宣佈爲日期。我錯過了什麼?「無法找到符號方法add(java.util.Date)」

import java.util.*; 
import java.text.SimpleDateFormat; 
import java.text.*; 


class Entry { 
    Date date; 

    Entry(Date aDate) { 
     date = aDate; 
    } 
} 

public class td { 
    public static void main(String[] args) { 

     List<Entry> entries = new ArrayList<Entry>(); 

     DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
     Date aDate = df.parse("2011-02-27"); // Date aDate = new Date() also fails 

     entries.add(aDate); 

     System.out.println(entries.get(0)); 
    } 
} 
+0

一個更具體的一般問題的案例http://stackoverflow.com/questions/25706216/what-does-a-cannot-find-symbol-compilation-error-mean – Raedwald 2016-02-26 20:09:12

回答

6

您確定要不要entries.add(new Entry(aDate));?這似乎是Entry類的目的。

一般而言,如果您聲明列表爲List<Entry>,則應該在其中存儲Entry實例,而不是Date

此外,您的錯誤說「找不到符號方法add(java.util.Date)」。所以,這不是Date類缺少。這是add(java.util.Date)方法。

+0

嘆息。你是對的。編譯器還堅持我用try&catch包裝df.parse語句。雖然我在這裏,我應該有條目.get()返回一些合理的。 – foosion 2011-02-28 19:30:15

+0

@foosion代替包裝,可能更容易在'main'方法聲明中添加'throws Exception'。既然你不能做任何有用的錯誤,最好讓它通過。 – 2011-02-28 19:32:10

+0

這很容易。如果我不在try/catch之外聲明並初始化aDate,它還可以防止「未初始化」的錯誤 – foosion 2011-02-28 19:34:32

0

要重新迭代:List添加(Entry)方法並且沒有add(Date)方法。

相關問題