2010-03-14 11 views
5

Durante la codificación creé una clase que extends ArrayList<> y implements Iterable<>. El código es:regla de Java para extiende e implementa

public class Testclass extends ArrayList<Object>, implements Iterable<Object> { } 

Netbeans informado de un error:

'{' expected 

Cómo evita esto?

+1

funciona en eclipse. No veo por qué sería un problema. puedes aclarar cuál es el error, podría ayudar. – mtim

+2

Si está extendiendo ArrayList, espero que su clase ** 'es una' ** colección, es decir, es muy natural es un grupo de elementos. De lo contrario, use la delegación, es decir, tenga una 'ArrayList' interna. – kiwicptn

+1

¿Leyó * el error? ¿No * solo * dijiste que necesitas implementar los métodos definidos por Iterator? – BalusC

Respuesta

11

De los comentarios:

error is '{' expected

code is this public class Testclass extends ArrayList<Object>, implements Iterable<Object> { }

Quitar esa coma ,. No pertenece allí. Es solo un error de sintaxis

En el futuro, por favor lea el mensaje de error. Si no puede interpretarlo, incluso después de un pequeño Google, simplemente solicítelo aquí, complete con el mensaje de error completo y el código que lo causó. De esta manera obtendrá respuestas más adecuadas antes de lo que adivinar al azar por la causa;)

2

ArrayList no implementa Iterator. ¿Quizás te refieres a Iterable?

De todos modos, no es un problema implementar una interfaz que una superclase ya implementa (es simplemente redundante).

¿Qué error estás obteniendo? Parece ser sobre otra cosa. Si usa genéricos, ¿se aseguró de que los tipos coincidan en la superclase y la interfaz?

Además, parece que va en contra del espíritu de las interfaces Collection y Iterator tener un objeto que sea a la vez. Por lo menos, es bastante confuso.

+0

lo siento significaba iterables –

1

Para una clase que se extiende ArrayList e implementa iterador, se necesitan tres métodos:

public boolean hasNext() 
public Object next() 
public void remove() 
0

Retire la coma entre e implementa

No sé lo que está haciendo, pero que no quieren una clase que se extiende ArrayList y implementa el iterador.

Simplemente implemente la Lista (o incluso la Colección si puede). Si alguien quiere el iterador, puede llamar al método yourList.iterator(). Incluso puede devolver su iterador personalizado si eso es lo que realmente desea.

Cuestiones relacionadas