Java - Error comparación

 
Vista:
sin imagen de perfil

Error comparación

Publicado por Juan Pablo (1 intervención) el 12/09/2016 16:24:17
Hola gente, soy nuevo en JAVA y tengo errores básicos que no sé cómo arreglarlos, les paso una parte de un código y pregunten lo que gusten si necesitan alguna info sobre el código a parte del segmento que les copio.

1
2
3
4
5
6
7
8
9
10
11
12
13
public void asignarBoxeador (Boxeador boxeador){
	for (int i = 0; i < this.entrenador.length; i++) {
		if (boxeador.getCategoriaBox()equals(this.entrenador[i].getCategoria1())) {
			for (int j = 0; j < this.boxeador.length; j++) {
				if (j < this.boxeador.length) {
					this.entrenador[i].setBoxeador() = boxeador();
				}else{
					System.out.println("Este entrenador ya tiene 5 boxeadores a su cargo");
				}
			}
		}
	}
}

Tengo 2 problemas con el mismo nombre de error, el cuál es "The left-hand side of an assignment must be a variable"
El 1ro en el primer IF, en la condición, "boxeador.getCategoriaBox()"
El 2do en el segundo IF, en la parte de ejecución por verdadero, "this.entrenador[i].setBoxeador()"
Espero me puedan ayudar ya que es para un trabajo práctico y estoy con poco tiempo para terminar de resolverlo. De antemano, muchas gracias!
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

Error comparación

Publicado por ctmy (47 intervenciones) el 12/09/2016 19:10:28
No estoy muy seguro si en la primera te falta el punto o si ese es posible:

1
if (boxeador.getCategoriaBox().equals(this.entrenador[i].getCategoria1()))

El segundo es invalido. Aparte de eso un metodo que hace 'set = cambiar' normalmente tiene un argumento, el cual se utiliza para cambiar el valor de la variable en la izquierda.

1
2
3
4
5
6
7
8
this.entrenador[i].setBoxeador() = boxeador();
   // talvez asi
         this.entrenador[i].setBoxeador(variable) = boxeador.getAlgo();  // El uso de los metodos esta bien pero
  //la asignacion sigue invalida.
 
// talvez
 
this.entrenador[i].setBoxeador(boxeador.getAlgo()); // la variables o valores tendrian que ser del mismo tipo
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
sin imagen de perfil

Error comparación

Publicado por YYanes (144 intervenciones) el 21/09/2016 14:54:42
Efectivamente, en el primer if debe ir un punto, ejemplo:
1
2
3
if(miVarString.equals("bla bla")){
...
}

o también podría ser:
1
2
3
if(miVarString.equals(ObjetoX.GetParametro.ToString())){
...
}
-------------
El segundo caso yo lo pondría de la siguiente manera:
1
this.entrenador[i].setBoxeador(boxeador.getNombre());

Un GigaSaludo!!!
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
Imágen de perfil de Alejandro
Val: 23
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Error comparación

Publicado por Alejandro (7 intervenciones) el 13/09/2016 15:00:39
Hola amigo, espero esto te ayude en algo.
Mira, los métodos set de una clase Y es poner un valor a una variable del tipo X, donde esta variable X es una atributo privado de la dicha clase, entonces como es el ejemplo que aquí pones this.entrenador[i].setBoxeador() = boxeador(); es incorrecto, pues para este caso, el método serBoxeador si te fijas en la definición de la clase entrenador el método setBoxeador debe tener como parámetro un objeto de tipo X que será la variable que quieres setear, entonces en todo caso la instrucción sería this.entrenador[i].setBoxeador(boxeador) donde boxeador es el atributo del método setBoxeador y contiene los atributos de la clase Boxeador, en este caso estarías asignándole a un entrenador un Boxeador con las características ABCD por ejemplo.

Entonces con if (boxeador.getCategoriaBox()equals(this.entrenador[i].getCategoria1())) {
.
.
.

}

es lo siguiente, la instrucción equals, se encarga de hacer esto internamente, imagínate dos objetos, el X y el Y y deseas compararlos mediante la instrucción equals, y por dentro se hace esto si Y == null return false o si Y != X return false; si Y==X return true, esto es más o menos lo que se hace, por tanto para lo que quieres hacer, sería así más o menos,
Y aquí te sugiero algo, getCategoriaBox() no es la categoría del boxeador? entonces imagino que deberias coger al boxeador del entrenador[1].getBoexeador().getCategoria() para hacer la comparación
if(boxeador.getCategoriaBox().equals(this.entrenador[i].getCategoria1())){
.
//hacer algo
.
}

Espero te sirva de algo, toda la lata esta jajajaaa.
Saludos
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