2011-02-28 120 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)方法。

相关问题