Clase Java.lang.Class en Java | conjunto 2

Clase Java.lang.Class en Java | Serie 1 

Más métodos: 

1. int getModifiers() : este método devuelve los modificadores del lenguaje Java para esta clase o interfaz, codificados en un número entero. Los modificadores consisten en las constantes de Java Virtual Machine para public, protected, private, final, static, abstract e interface. Estos modificadores ya están decodificados en la clase Modifier en el paquete java.lang.Reflect. 

Syntax : 
public int getModifiers()
Parameters : 
NA
Returns :
the int representing the modifiers for this class

Java

// Java program to demonstrate getModifiers() method
 
import java.lang.reflect.Modifier;
 
public abstract class Test
{
    public static void main(String[] args)
    {
        // returns the Class object associated with Test class
        Class c = Test.class;
 
        // returns the Modifiers of the class Test
        // getModifiers method
        int i = c.getModifiers();
         
        System.out.println(i);
         
        System.out.print("Modifiers of " + c.getName() + " class are : ");
 
        // getting decoded i using toString() method
        // of Modifier class
        System.out.println(Modifier.toString(i));
    }
}

Producción: 

1025
Modifiers of Test class are : public abstract

2. T[] getEnumConstants() : este método devuelve los elementos de esta clase de enumeración. Devuelve nulo si este objeto Class no representa un tipo de enumeración. 

Syntax : 
public T[] getEnumConstants()
Parameters : 
NA
Returns :
an array containing the values comprising the enum class represented by this Class object
in the order they're declared,
or null if this Class object does not represent an enum type

Java

// Java program to demonstrate getEnumConstants() method
 
enum Color
{
    RED, GREEN, BLUE;
}
  
public class Test
{
    public static void main(String[] args)
    {  
        // returns the Class object associated with Color(an enum class)
        Class c1 = Color.class;
         
        // returns the Class object associated with Test class
        Class c2 = Test.class;
         
        // returns the elements of Color enum class in an array
        // getEnumConstants method
        Object[] obj1 = c1.getEnumConstants();
         
        System.out.println("Enum constants of " + c1.getName() + " class are :");
         
        // iterating through enum constants
        for (Object object : obj1)
        {
            System.out.println(object);
        }
         
        // returns null as Test Class object does not represent an enum type
        Object[] obj2 = c2.getEnumConstants();
 
        System.out.println("Test class does not contain any Enum constant.");
        System.out.println(obj2);
         
    }
}

Producción: 

Enum constants of Color class are :
RED
GREEN
BLUE
Test class does not contain any Enum constant.
null

3. String getCanonicalName() : este método devuelve el nombre canónico de la clase subyacente según lo define la especificación del lenguaje Java. 
Devuelve nulo si la clase subyacente no tiene un nombre canónico (es decir, si es una clase local o anónima o una array cuyo tipo de componente no tiene un nombre canónico).

Syntax : 
public String getCanonicalName()
Parameters : 
NA
Returns :
the Canonical name of the underlying class, if it exists
null, otherwise

Java

// Java program to demonstrate getCanonicalName() method
public class Test
{
    public static void main(String[] args)
            throws ClassNotFoundException
    {
        // returns the Class object for the class
        // with the specified name
        Class c1 = Class.forName("java.lang.String");
 
        System.out.print("Canonical name of class represented by c1 : ");
         
        // returns the Canonical name of the class
        // getCanonicalName method
        System.out.println(c1.getCanonicalName());
    }
}

Producción: 

Canonical name of class represented by c1 : java.lang.String

4. boolean wishedAssertionStatus() : este método devuelve el estado de aserción que se asignaría a esta clase si se inicializara en el momento en que se invoca este método. 

Syntax : 
public boolean desiredAssertionStatus()
Parameters : 
NA
Returns :
the desired assertion status of the specified class.

Java

// Java program to demonstrate desiredAssertionStatus() method
public class Test
{
    public static void main(String[] args)
                         throws ClassNotFoundException
    {
        // returns the Class object for the class
        // with the specified name
        Class c1 = Class.forName("java.lang.String");
         
        // checking for assertion status of String class
         
        System.out.print("desired assertion status of " + c1.getName() + "class: ");
         
        // desiredAssertionStatus() method
        System.out.println(c1.desiredAssertionStatus());
         
    }
}

Producción: 

desired assertion status of java.lang.Stringclass : false

5. Class<?> getComponentType() : este método devuelve la clase que representa el tipo de componente de una array. Si esta clase no representa una clase de array, este método devuelve nulo.

Syntax : 
public Class<?> getComponentType()
Parameters : 
NA
Returns :
the Class representing the component type of this class if this class is an array

Java

// Java program to demonstrate getComponentType() method
public class Test
{
    public static void main(String[] args)
    {
        int a[] = new int[2];
         
        // returns the Class object for array class
        Class c = a.getClass();
         
        System.out.print("Component type of class represented by c : ");
         
        // getComponentType() method
        System.out.println(c.getComponentType());
         
    }
}

Producción: 

Component type of class represented by c : int

6. Class<?>[] getDeclaredClasses() : Devuelve una array de objetos Class que reflejan todas las clases e interfaces declaradas como miembros de la clase representada por este objeto Class. 
Este método incluye acceso público, protegido, predeterminado (paquete) y clases e interfaces privadas declaradas por la clase, pero excluye las clases e interfaces heredadas. Este método devuelve una array de longitud 0 si la clase no declara clases o interfaces como miembros, o si este objeto Class representa un tipo primitivo, una clase de array o un vacío.

Syntax : 
public Class<?>[] getDeclaredClasses()
Parameters : 
NA
Returns :
the array of Class objects representing all the declared members of this class
Throws :
SecurityException - If a security manager, s, is present 

Java

// Java program to demonstrate getDeclaredClasses() method
 
public class Test
{
    // base interface
    interface A
    {
        // methods and constant declarations
    }
      
    // derived class
    class B implements A
    {
        // methods implementations that were declared in A
    }
 
     
    public static void main(String[] args)
    {
        // returns the Class object associated with Test class
        Class myClass = Test.class;
         
        // getDeclaredClasses on myClass
        // it returns array of classes and interface declare in Test class
        Class c[] = myClass.getDeclaredClasses();
         
        System.out.println("Declared classes and interfaces present in " +
                                                  myClass.getName() + " class : ");
         
        // iterating through classes and interfaces declared in Test class
        for (Class class1 : c)
        {
            System.out.println(class1);
        }
         
    }
}

Producción: 

Declared classes and interfaces present in Test class : 
interface Test$A
class Test$B

7. Field getDeclaredField(String fieldName) : este método devuelve un objeto Field que refleja el campo declarado especificado de la clase o interfaz representada por este objeto Class. 
El parámetro de nombre es una string que especifica el nombre simple del campo deseado. Tenga en cuenta que este método no reflejará el campo de longitud de una clase de array.

Syntax : 
public Field getDeclaredField(String fieldName) 
throws NoSuchFieldException,SecurityException
Parameters : 
fieldName -  the field name
Returns :
the Field object for the specified field in this class
Throws :
NoSuchFieldException - if a field with the specified name is not found.
NullPointerException - if fieldName is null
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredField() method
 
import java.lang.reflect.Field;
 
public class Test
{
    // any declared field
    int i;
     
    public static void main(String[] args)
            throws NoSuchFieldException, SecurityException
    {
        // returns the Class object associated with Test class
        Class myClass = Test.class;
         
        // getDeclaredField on myClass
        Field f = myClass.getDeclaredField("i");
         
        System.out.println("Declared field present in " +
                                     myClass.getName() +
                                     " class specified by \"i\" : ");
         
        System.out.println(f);
    }
}

Producción: 

Declared field present in Test class specified by "i" : 
int Test.i

8. Field[] getDeclaredFields() : este método devuelve una array de objetos Field que reflejan todos los campos declarados por la clase o interfaz representada por este objeto Class. Esto incluye campos públicos, protegidos, de acceso predeterminado (paquete) y privados, pero excluye los campos heredados. 
Este método devuelve una array de longitud 0 si la clase o la interfaz no declara campos, o si este objeto Class representa un tipo primitivo, una clase de array o un vacío. 

Syntax : 
public Field[] getDeclaredFields()  throws SecurityException
Parameters : 
NA
Returns :
the array of Field objects representing all the declared fields of this class
Throws :
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredFields() method
 
import java.lang.reflect.Field;
 
public class Test
{
    // some declared fields
    int i;
    String str;
    boolean b;
     
    public static void main(String[] args)
    {
        // returns the Class object associated with Test class
        Class myClass = Test.class;
         
        // getDeclaredFields on myClass
        Field f[] = myClass.getDeclaredFields();
         
        System.out.println("Declared fields present in " +
                                            myClass.getName() + " class are : ");
         
        // iterating through declared fields of Test class
        for (Field field : f)
        {
            System.out.println(field);
        }
    }
}

Producción: 

Declared fields present in Test class are : 
int Test.i
java.lang.String Test.str
boolean Test.b

9. Método getDeclaredMethod(String nombreMétodo,Clase… tipos deparámetros) : este método devuelve un objeto Método que refleja el método declarado especificado de la clase o interfaz representada por este objeto Clase.

Syntax : 
public Method getDeclaredMethod(String methodName,Class... parameterTypes) 
throws NoSuchFieldException,SecurityException
Parameters : 
methodName -  the method name
parameterTypes - the list of parameters
Returns :
the Method object for the method of this class matching the specified name and parameters
Throws :
NoSuchMethodException - if a method with the specified name is not found.
NullPointerException - if methodName is null
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredMethod() method
 
import java.lang.reflect.Method;
 
public class Test
{
    // any declared method
    // with a String argument
    public void m1(String str)
    {
        System.out.println(str);
    }
     
    public static void main(String[] args)
            throws NoSuchMethodException, SecurityException, ClassNotFoundException
    {
        // returns the Class object associated with Test class
        Class myClass = Test.class;
         
        // returns the Class object for the class
        // with the specified name
        Class c = Class.forName("java.lang.String");
         
        // getDeclaredMethod on myClass
        Method m = myClass.getDeclaredMethod("m1",c);
         
        System.out.println("Declared method present in " +
                                myClass.getName() +
                                " class specified by argument : " + c.getName());
         
        System.out.println(m);
    }
}

Producción: 

Declared method present in Test class specified by argument : java.lang.String
public void Test.m1(java.lang.String)

10. Method[] getDeclaredMethods() : este método devuelve una array de objetos Method que reflejan todos los métodos declarados por la clase o interfaz representada por este objeto Class. Esto incluye acceso público, protegido, predeterminado (paquete) y métodos privados, pero excluye los métodos heredados.
Este método devuelve una array de longitud 0 si la clase o interfaz no declara ningún método, o si este objeto Class representa un tipo primitivo, una clase de array o un vacío.

Syntax : 
public Method[] getDeclaredMethods() throws SecurityException
Parameters : 
NA
Returns :
the array of Method objects representing all the declared methods of this class
Throws :
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredMethods() method
 
import java.lang.reflect.Method;
 
public class Test
{
    // some declared Methods
    public void m1()
    {
        System.out.println("Inside m1 method");
    }
     
    static void m2()
    {
        System.out.println("Inside m2 method");
    }
     
    // main method
    public static void main(String[] args)
    {
        // returns the Class object associated with Test class
        Class myClass = Test.class;
         
        // getDeclaredMethods on myClass
        Method m[] = myClass.getDeclaredMethods();
         
        System.out.println("Declared methods present in " +
                                            myClass.getName() + " class are : ");
         
        // iterating through declared Methods of Test class
        for (Method Method : m)
        {
            System.out.println(Method);
        }
    }
}

Producción: 

Declared methods present in Test class are : 
public static void Test.main(java.lang.String[])
public void Test.m1()
static void Test.m2()

11. Constructor<?> getDeclaredConstructor(Class<?>… ParameterTypes) : este método devuelve un objeto Constructor que refleja el constructor especificado de la clase o interfaz representada por este objeto Class. 

Syntax : 
public Constructor<?> getDeclaredConstructor(Class<?>... parameterTypes) 
throws NoSuchMethodException,SecurityException
Parameters : 
parameterTypes - the list of parameters
Returns :
The Constructor object for the constructor with the specified parameter list
Throws :
NoSuchMethodException - if a Constructor with the specified parameterTypes is not found.
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredConstructor() Constructor
 
import java.lang.reflect.Constructor;
 
public class Test
{
     
    public static void main(String[] args)
            throws NoSuchMethodException, SecurityException, ClassNotFoundException
    {
        // returns the Class object for the class
        // with the specified name
        Class c1 = Class.forName("java.lang.Integer");
        Class c2 = Class.forName("java.lang.String");
         
        // getDeclaredConstructor on myClass
        Constructor con = c1.getDeclaredConstructor(c2);
         
        System.out.println("Declared Constructor present in " + c1.getName() +
                                  " class specified by argument : " + c2.getName());
         
        System.out.println(con);
    }
}

Producción: 
 

Declared Constructor present in java.lang.Integer class specified by argument : 
java.lang.String public java.lang.Integer(java.lang.String) 
throws java.lang.NumberFormatException

12. Constructor<?>[] getDeclaredConstructors() : este método devuelve una array de objetos Constructor que refleja todos los constructores declarados por la clase representada por este objeto Class. Estos son constructores públicos, protegidos, de acceso predeterminado (paquete) y privados.
Este método devuelve una array de longitud 0 si este objeto Class representa una interfaz, un tipo primitivo, una clase de array o un vacío.

Syntax : 
public Constructor<?>[] getDeclaredConstructors() throws SecurityException
Parameters : 
NA
Returns :
the array of Constructor objects representing all the declared constructors of this class
Throws :
SecurityException - If a security manager, s, is present.

Java

// Java program to demonstrate getDeclaredConstructors() Constructor
 
import java.lang.reflect.Constructor;
 
public class Test
{
     
    public static void main(String[] args)
            throws ClassNotFoundException
    {
        // returns the Class object for the class
        // with the specified name
        Class c = Class.forName("java.lang.String");
         
        // getDeclaredConstructors on myClass
        Constructor con[] = c.getDeclaredConstructors();
         
        System.out.println("Declared Constructors present in " +
                                c.getName() + " class are : ");
         
        // iterating through all constructors
        for (Constructor constructor : con)
        {
            System.out.println(constructor);
        }
    }
}

Producción: 

Declared Constructors present in java.lang.String class are : 
public java.lang.String(byte[],int,int)
public java.lang.String(byte[],java.nio.charset.Charset)
public java.lang.String(byte[],java.lang.String) throws 
java.io.UnsupportedEncodingException
public java.lang.String(byte[],int,int,java.nio.charset.Charset)
public java.lang.String(byte[],int,int,java.lang.String) 
throws java.io.UnsupportedEncodingException
java.lang.String(char[],boolean)
public java.lang.String(java.lang.StringBuilder)
public java.lang.String(java.lang.StringBuffer)
public java.lang.String(byte[])
public java.lang.String(int[],int,int)
public java.lang.String()
public java.lang.String(char[])
public java.lang.String(java.lang.String)
public java.lang.String(char[],int,int)
public java.lang.String(byte[],int)
public java.lang.String(byte[],int,int,int)

13. Class<?> getDeclaringClass() : si la clase o la interfaz representada por este objeto Class es miembro de otra clase, este método devuelve el objeto Class que representa la clase en la que se declaró. 
Este método devuelve nulo si esta clase o interfaz no es miembro de ninguna otra clase. Si este objeto Class representa una clase de array, un tipo primitivo o vacío, entonces este método devuelve un valor nulo.

Syntax : 
public Class<?>  getDeclaringClass()
Parameters : 
NA
Returns :
the declaring class of this class

Java

// Java program to demonstrate
// getDeclaringClass() Class
import java.lang.reflect.Method;
public class Test
{
    // any method
    public void m1()
    {
        System.out.println("Inside m1 method");
    }
     
    public static void main(String[] args)
    {
         
        // returns A class object
        Class c1 = Test.class;
         
        // getting all methods of Test class
        // Note that methods from Object class
        // are also inherited
        Method m[] = c1.getMethods();
         
        for (Method method : m)
        {
            // getDeclaringClass method
            // it return declared class of this method
            System.out.println(method.getName() + " is present in "
                                            + method.getDeclaringClass());
        }
         
    }
}

Producción: 

main is present in class Test
m1 is present in class Test
wait is present in class java.lang.Object
wait is present in class java.lang.Object
wait is present in class java.lang.Object
equals is present in class java.lang.Object
toString is present in class java.lang.Object
hashCode is present in class java.lang.Object
getClass is present in class java.lang.Object
notify is present in class java.lang.Object
notifyAll is present in class java.lang.Object

14. Class<?> getEnclosingClass() : este método devuelve la clase envolvente inmediata de la clase subyacente. Si la clase subyacente es una clase de nivel superior, este método devuelve nulo.

Syntax : 
public Class<?> getEnclosingClass()
Parameters : 
NA
Returns :
the immediately enclosing class of the underlying class

Java

// Java program to demonstrate getEnclosingClass() Class
 
public class Test
{
    // any inner class of Test class
    class A{}
     
    public static void main(String[] args)
    {
         
        // returns A class object
        Class c1 = Test.A.class;
         
        // getEnclosingClass method
        // it returns the class object where A class present
        Class c2 = c1.getEnclosingClass();
         
        System.out.println("The class " + c1.getName() + " is present in class : ");
         
        System.out.println(c2);
         
    }
}

Producción: 

The class Test$A is present in class : 
class Test

15. Método getEnclosingMethod() : si este objeto Class representa una clase local o anónima dentro de un método, devuelve un objeto Method que representa el método envolvente inmediato de la clase subyacente. 

Syntax : 
public Class<?> getEnclosingMethod()
Parameters : 
NA
Returns :
the immediately enclosing method of the underlying class,
if that class is a local or anonymous class;
otherwise null

Java

// Java program to demonstrate getEnclosingMethod() method
 
import java.lang.reflect.Method;
 
public class Test
{
    // any method
    public static Class m1()
    {  
        // any local class in m1
        class A{};
         
        // returning class A
        return A.class;
    }
 
     
    // main method
    public static void main(String[] args)
            throws ClassNotFoundException
    {
        // returns A Class object
        Class c = Test.m1();
         
        // getEnclosingMethod method
        Method m = c.getEnclosingMethod();
         
        System.out.println("The class " + c.getName() + " is present in method : ");
         
        System.out.println(m);
         
    }
}

Producción: 

The class Test$1A is present in method : 
public static java.lang.Class Test.m1()

16. Constructor getEnclosingConstructor() : si este objeto Class representa una clase local o anónima dentro de un constructor, devuelve un objeto Constructor que representa el constructor envolvente inmediato de la clase subyacente. Devuelve nulo en caso contrario.

Syntax : 
public Constructor<?> getEnclosingConstructor()
Parameters : 
NA
Returns :
the immediately enclosing constructor of the underlying class,
if that class is a local or anonymous class; 
otherwise null.

Java

// Java program to demonstrate
// getEnclosingConstructor() Constructor
 
import java.lang.reflect.Constructor;
 
public class Test
{
    Class c;
     
    // default(any) constructor
    public Test()
    {
        // any local class
        class A{};
         
        // returns A class object
        c = A.class;
    }
     
    public static void main(String[] args)
    {
        // creating Test class object
        Test t = new Test();
         
        // getEnclosingConstructor method
        Constructor con = t.c.getEnclosingConstructor();
         
        System.out.println("The class " + t.c.getName()
                        + " is present in constructor : ");
         
        System.out.println(con);
         
    }
}

Producción: 

The class Test$1A is present in Constructor : 
public Test()

17. ProtectionDomain getProtectionDomain() : Devuelve el ProtectionDomain de esta clase. Si hay un administrador de seguridad instalado, este método primero llama al método checkPermission del administrador de seguridad con un permiso RuntimePermission («getProtectionDomain») para asegurarse de que está bien obtener ProtectionDomain.

Syntax : 
public ProtectionDomain getProtectionDomain()
Parameters : 
NA
Returns :
the ProtectionDomain of this class
Throws :
SecurityException - if a security manager s exists 
and its checkPermission method doesn't allow getting the ProtectionDomain.

Java

// Java program to demonstrate getProtectionDomain() method
public class Test
{
    public static void main(String[] args)
                         throws ClassNotFoundException
    {
        // returns the Class object for the class
        // with the specified name
        Class c1 = Class.forName("java.lang.String");
         
        // checking for assertion status of String class
         
        System.out.println("protection domain of " + c1.getName() + " class : ");
         
        // getProtectionDomain() method
        // it will print null as String class is loaded by
        // BootStrap class loader
        System.out.println(c1.getProtectionDomain());
         
    }
}

Producción: 

protection domain of java.lang.String class : 
ProtectionDomain  null
 null
 
 java.security.Permissions@7852e922 (
 ("java.security.AllPermission" "" "")
)

18. boolean isAnnotationPresent(Class<?extends Annotation> annotationClass)() : este método devuelve verdadero si una anotación para el tipo especificado está presente en este elemento; de lo contrario, es falso. Este método está diseñado principalmente para un acceso conveniente a las anotaciones de marcadores.

Specified by:
isAnnotationPresent in interface AnnotatedElement
Syntax : 
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) 
Parameters : 
annotationClass - the Class object corresponding to the annotation type
Returns :
true if an annotation for the specified annotation type is present on this element
false, otherwise
Throws:
NullPointerException - if the given annotation class is null

19. boolean isSynthetic() : Este método determina si esta clase es una clase sintética o no.

Syntax : 
public boolean isSynthetic()
Parameters : 
NA
Returns :
return true if and only if this class is a synthetic class.

20. URL getResource(String name) : Encuentra un recurso con un nombre dado. Las reglas para buscar recursos asociados con una clase dada son implementadas por el cargador de clases definidor de la clase.

Syntax : 
public URL getResource(String name)
Parameters : 
name - name of the desired resource
Returns :
A URL object or null if no resource with this name is found

21. InputStream getResourceAsStream(String name) : Encuentra un recurso con un nombre dado. Las reglas para buscar recursos asociados con una clase dada son implementadas por el cargador de clases definidor de la clase.

Syntax : 
public InputStream getResourceAsStream(String name)
Parameters : 
name - name of the desired resource
Returns :
A InputStream object or null if no resource with this name is found
Throws:
NullPointerException - If name is null

22. Object[] getSigners() : Obtiene los firmantes de esta clase.

Syntax : 
public Object[] getSigners()
Parameters : 
NA
Returns :
the signers of this class, or null if there are no signers.
In particular,it returns null if this object represents a primitive type or void.

23. Annotation[] getAnnotations() : este método devuelve todas las anotaciones presentes en este elemento. Devuelve una array de longitud cero si este elemento no tiene anotaciones. 
La persona que llama a este método es libre de modificar la array devuelta; no tendrá ningún efecto en las arrays devueltas a otras personas que llaman.

Specified by:
getAnnotations() in interface AnnotatedElement
Syntax : 
public Annotation[] getAnnotations()
Parameters : 
NA
Returns :
all annotations present on this element

24. <A extends Annotation> A getAnnotation(Class<A> annotationClass) : este método devuelve la anotación de este elemento para el tipo especificado si tal anotación está presente, de lo contrario, nulo.

Specified by:
getAnnotations() in interface AnnotatedElement
Syntax : 
public Annotation[] getAnnotations()
Parameters : 
annotationClass - the Class object corresponding to the annotation type
Returns :
return element's annotation for the specified annotation type if present on this element
else null
Throws:
NullPointerException - if the given annotation class is null

25. Annotation[] getDeclaredAnnotations() : Devuelve todas las anotaciones que están directamente presentes en este elemento. A diferencia de los otros métodos en esta interfaz, este método ignora las anotaciones heredadas. Devuelve una array de longitud cero si no hay anotaciones directamente presentes en este elemento. 
La persona que llama a este método es libre de modificar la array devuelta; no tendrá ningún efecto en las arrays devueltas a otras personas que llaman.

Specified by:
getDeclaredAnnotations in interface AnnotatedElement
Syntax : 
public Annotation[] getDeclaredAnnotations()
Parameters : 
NA
Returns :
All annotations directly present on this element

Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *