2011-02-28 5 views
1

"나는 그것을 전달하는 것이 Date로 선언되었지만"기호 메서드 add (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

답변

6

entries.add(new Entry(aDate)); 하시겠습니까? 그것은 Entry 클래스의 목적 인 것 같습니다.

일반적으로 목록을 List<Entry>으로 선언하면 Date이 아닌 Entry 인스턴스를 저장해야합니다.

또한 오류는 "기호 메서드 추가 (java.util.Date)"을 찾을 수 없다고 말합니다. 따라서, 누락 된 클래스는 Date이 아닙니다. 방법은 add(java.util.Date)입니다.

+0

한숨. 네가 옳아. 컴파일러는 또한 try & catch를 사용하여 df.parse 문을 래핑한다고 주장합니다. 내가 그 동안 엔 entries.get()이 의미있는 것을 반환해야한다. – foosion

+0

@foosion 포장하는 대신'main' 메소드 선언에'throws Exception'을 추가하는 것이 더 쉽습니다. 오류와 관련하여 아무 것도 할 수 없으므로 그냥 지나치게하는 것이 좋습니다. –

+0

그게 더 쉽습니다. 또한 try/catch 밖에서 aDate를 선언하고 초기화하지 않으면 "초기화되지 않은"오류를 방지합니다. – foosion

0

다시 반복하려면 : 목록에 추가 (입력) 메소드가 있고 추가 (날짜) 메소드가 없습니다.

관련 문제