Encadenamiento de métodos en Java
Este tutorial demuestra cómo realizar el encadenamiento de métodos en Java.
Encadenamiento de métodos en Java
El encadenamiento de métodos llama a múltiples métodos simultáneamente usando el punto .
operadores. El encadenamiento de métodos llama a múltiples métodos en una declaración, mientras que una cadena de métodos se llama en una sola declaración.
El encadenamiento de métodos es un concepto del Programa Orientado a Objetos donde cada método en una cadena devolverá un objeto. El encadenamiento de métodos también se puede definir como llamar a múltiples métodos en un objeto.
La sintaxis para el encadenamiento de métodos es:
DemoObject.method1().method2().method3();
Como podemos ver en la sintaxis, se llaman tres métodos en el DemoObject
. Llamar a un método tras otro de esta manera se denomina el concepto de encadenamiento de métodos.
El encadenamiento de métodos también se conoce como el lenguaje de parámetros en Java. A veces, podemos llamarlo un choque de trenes cuando aumenta la cantidad de métodos.
Probemos un ejemplo de encadenamiento de métodos en Java:
package delftstack;
class Demo {
private int DemoInt;
private float DemoFloat;
Demo() {
System.out.println("This is the consutructor");
}
int SetInteger(int DemoInt) {
this.DemoInt = DemoInt;
return this.DemoInt;
}
float SetFloat(float DemoFloat) {
this.DemoFloat = DemoFloat;
return this.DemoFloat;
}
void DisplayData() {
System.out.println("Display Numbers=" + DemoInt + " " + DemoFloat);
}
}
public class Example {
public static void main(String[] args) {
new Demo().SetInteger(34).DisplayData();
}
}
El código anterior aplicó el encadenamiento de métodos en el objeto de la clase Demo
. Pero arrojará un error porque el método DisplayData
devuelve un objeto donde SetInteger
devuelve un valor int.
El concepto de encadenamiento de métodos no funciona de esa manera.
Ver la salida:
public class Example {
^
Demo.java:33: error: int cannot be dereferenced
new Demo().SetInteger(34).DisplayData();
^
2 errors
Para resolver este problema, tenemos que definir el método como un tipo de clase Demo
y devolver solo el objeto esto
en los métodos.
Ver el ejemplo:
package delftstack;
class Demo {
private int DemoInteger;
private float DemoFloat;
Demo() {
System.out.println("This is the consutructor");
}
public Demo SetInteger(int DemoInteger) {
this.DemoInteger = DemoInteger;
return this;
}
public Demo SetFloat(float DemoFloat) {
this.DemoFloat = DemoFloat;
return this;
}
void DisplayData() {
System.out.println("Display Numbers=" + DemoInteger + " " + DemoFloat);
}
}
class Example {
public static void main(String[] args) {
new Demo().SetInteger(43).SetFloat(23).DisplayData();
}
}
Ahora el código funcionará correctamente. Ver la salida:
This is the consutructor
Display Numbers=43 23.0
Estos son algunos puntos importantes a tener en cuenta al trabajar con el encadenamiento de métodos en Java:
- Siempre que se llame al constructor, debemos asegurarnos de que el constructor no contenga ningún valor de retorno.
- El constructor siempre devuelve una referencia de objeto, por lo que podemos usar esta referencia de objeto para llamar a otro método.
- Al aplicar el método de encadenamiento con un punto
.
operador, debemos asegurarnos de que cada método en la cadena devuelva una referencia de objeto.
Por ejemplo, en el primer ejemplo, el método SetInteger
devuelve un int, y el método DisplayData
devuelve una referencia de objeto, por lo que devuelve un error. De manera similar, en el segundo ejemplo, cada método devuelve una referencia de objeto, por lo que funciona correctamente.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook