2017-11-09 1 views
-3

문제는 관련된 클래스 (부모)의 객체를 자식의 arrayList에 추가하는 것입니다. 수행arrayList의 끝에 Java 추가

public void addElement(Parent e) 
{elements.add(e);//has an error} 

문제는 곳입니다 : 나는 부모 개체를 만든 배열 목록이 있습니다

ArrayList<Parent>elements = new ArrayList<Parent>();//creating an array list 

을 그리고 난/추가하는 방법을 사용하여 목록의 끝에 값을 추가하려고 요소를 추가 할 위치를 지정해야합니까? 아니면 내 코드에 다른 문제가 있습니까?

나는 중복을 찾을 일이 있다면 고마워요,

편집 날 직접하시기 바랍니다 없습니다 -이 오류입니다 :

1020\Asssignment 3\GUIgroup.java [line: 14] 
Error: cannot find symbol 
    symbol: method add(GUIelement) 
    location: variable elements of type GUIelement 

GUIgroup는 서브 클래스 GUIelement는 슈퍼 클래스입니다.

+4

정확한 오류는 무엇입니까? –

+0

A가 기호 오류를 찾을 수 없습니다. 특히 method.add (상위) –

+0

클래스를 구현하고이를 'ArrayList'라고 했습니까? – alfasin

답변

-2

전체 코드 및 자세한 오류 메시지를 첨부 해주십시오.

방법의 경우 위치 (add(int index, Parent element))를 지정하거나 (add(Parent e)) 지정할 수 없습니다.

cannot find symbol 오류가 발생하는 경우 addElement 메쏘드는 elements의 범위를 벗어나야합니다.

+0

에 대한 내용을 참조하십시오. 그러나 그럴 수는 있습니다. "범위를 넘어서"는 것은 무엇을 의미합니까? 나는 -1로 설정하지 않는 한 카운트 또는 인덱스 변수를 가지고 있지 않습니까? –

+0

@ Ted.M'addElement' 메소드에서'elements' 변수에 접근 할 수 없습니다. 보십시오 [링크] (http://www.geeksforgeeks.org/variable-scope-in-java/) –

+0

만약 내가 그것을 보호하기 위해 변경하면 수퍼 클래스가 또는 하위 클래스에 액세스 할 수 있다는 뜻입니까? –

0

부모 클래스의 배열 목록 요소를 선언 한 경우 일부 범위 문제로 인해 하위 클래스에서 액세스 할 가능성이 있습니다. 그러나 그것은 문제처럼 보이지 않습니다.

귀하의 주요 문제는 컴파일러가 요소가 배열 목록이 아니라 GUIelement 유형의 변수로, 따라서 오류와 관련된 add() 메소드가 없다고 생각하는 것입니다. GUIelement 객체로 요소를 가져 오는 이유를 확인해보십시오.

+0

감사합니다. 그럴듯 해 보입니다. 내가 문제를 찾을 수 있는지 보자. –