Java - ArrayList

 
Vista:

ArrayList

Publicado por patricia (5 intervenciones) el 30/12/2006 20:36:16
Dentro de un clase llamada AC, tengo este metodo. Resulta que me da el siguiente error

void Transicion (){
int Suma;
int aux,elto,pos;

for(int i=0; i< lng; i++ ) //lng definida en la clase
{
Suma = 0;
for( int j = -r ; j <= r; j ++)
if(CFrontera == "cilindrica"){
if(k==2 && r==1){
aux = (int)Math.pow(2,Math.abs(j-1));
if( i+j < 0 ){
pos = lng-(i+j);
elto = Cell.get(pos); //CASCA AQUI
Suma += (elto*aux);
...
}
y sigue, el codigo, pero me da este erro aqui

D:\JavaApplication1\src\ACU.java:110: incompatible types
found : java.lang.Object
required: int
elto = Cell.get(pos);

¿Me podria alguien ayudar? Es que no se que problema hay
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ArrayList

Publicado por Gilberto (378 intervenciones) el 31/12/2006 00:02:24
Supongo que Cell es un ArrayList, no es así? Lo que sucede es que el item almacenado en el ArrayList es un Object, por lo que no se le puede asignar a un int. Pero se puede hace un cast para recuperar el int:

elto = ((Integer)Cell.get(pos)).intValue();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ArrayList

Publicado por Lucas1024 (43 intervenciones) el 31/12/2006 00:40:52
Lo que pasa es que estas tratando de asignar a una variable de un tipo particular (int) una de tipo más general (Object) y eso no se puede.

Cell.get(pos) devuelve un objeto tipo Object. Tendría que ver qué cosa le agregaste a ese ArrayList cuando hiciste:

Cell.add(variableAgregada);

Dime qué tipo es "variableAgregada" para poder ayudarte mejor, pero por la asignación que has intentado hacer, supongo que fue tipo "int". Asumo que tienes algo así:

int variableAgregada;
Cell.add(variableAgregada);
...

Y has hecho
elto = Cell.get(pos); //Que devuelve un tipo Object y no int, que es lo que quieres.

Si estás trabajando con el JDK 1.5, usa Generics. Yo, en tu caso, haría algo así:

ArrayList<Integer> Cell = new ArrayList<Integer>(); //Creas un ArrayList de Integers
int variableAgregada;
Cell.add(variableAgregada);
...

Y luego:
elto = Cell.get(pos).intValue ();; //Ya no hay problema, porque devuelve un tipo int.

Nunca he trabajado con el JDK 1.4 o menor. Soy nuevo en Java :-(, pero asumo que se podría hacer algo así:

ArrayList Cell = new ArrayList();
int variableAgregada;
Cell.add(variableAgregada);
...

Y luego:
if (Cell.get (pos) instanceof Integer) {
elto = ((Integer)Cell.get (0)).intValue (); //Haces el casting respectivo
}

En fin, quizás ninguna sea la mejor solución, pero, como te dije, soy nuevo en Java y estoy aprendiendo, es por eso que verás que hago muchas consultas en este foro.

Espero haberte ayudado. Nos vemos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ArrayList

Publicado por patricia (5 intervenciones) el 02/01/2007 12:50:42
Gracias a los dos.
Si certamente lo que introduzco en el Array es un int.
Yo tambien soy nueva en java.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar