Java 2 agregó una clase llamada Paquete que encapsula los datos de versión asociados con un paquete. La información de la versión del paquete se está volviendo más importante debido a la proliferación de paquetes y porque un programa Java puede necesitar saber qué versión de un paquete está disponible.
Esta información de versión es recuperada y puesta a disposición por la instancia de ClassLoader que cargó la(s) clase(s). Por lo general, se almacena en el manifiesto que se distribuye con las clases. Extiende la clase Object e implementa AnnotatedElement.
Métodos:
- getAnnotation(Class annotationClass): Devuelve la anotación de este elemento para el tipo especificado si tal anotación está presente, de lo contrario, es nulo.
Syntax: public A getAnnotation(Class annotationClass) Returns: this element's annotation for the specified annotation type if present on this element, else null. Exception: NullPointerException - if the given annotation class is null.
// Java code illustrating getAnnotation() method
import
java.lang.annotation.Retention;
import
java.lang.annotation.RetentionPolicy;
import
java.lang.reflect.Method;
// declare a annotation type
@Retention
(RetentionPolicy.RUNTIME)
@interface
Demo
{
String str();
int
val();
}
public
class
PackageDemo
{
// setting values for the annotation
@Demo
(str =
" Gfg Demo Annotation"
, val =
100
)
// a method to call in the main
public
static
void
gfg()
throws
NoSuchMethodException
{
PackageDemo ob =
new
PackageDemo();
Class c = ob.getClass();
// get the method example
Method m = c.getMethod(
"gfg"
);
// get the annotation for class Demo
Demo annotation = m.getAnnotation(Demo.
class
);
// checking the annotation
System.out.println(annotation.str() +
" "
+ annotation.val());
}
public
static
void
main(String args[])
throws
Exception
{
gfg();
}
}
Producción:
Gfg Demo Annotation 100
- Annotation[] getAnnotations(): 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 puede modificar la array devuelta; no tendrá ningún efecto en las arrays devueltas a otras personas que llaman.
Syntax: public Annotation[] getDeclaredAnnotations(). Returns: All annotations directly present on this element. Exception: NA.
// Java code illustrating getAnnotation() method
import
java.lang.annotation.Annotation;
import
java.lang.annotation.Retention;
import
java.lang.annotation.RetentionPolicy;
import
java.lang.reflect.Method;
// declare a annotation type
@Retention
(RetentionPolicy.RUNTIME)
@interface
Demo
{
String str();
int
val();
}
public
class
PackageDemo
{
// setting values for the annotation
@Demo
(str =
" Gfg Demo Annotation"
, val =
100
)
// a method to call in the main
public
static
void
gfg()
throws
NoSuchMethodException
{
PackageDemo ob =
new
PackageDemo();
Class c = ob.getClass();
// get the method example
Method m = c.getMethod(
"gfg"
);
// get the annotation for class Demo
Demo annotation = m.getAnnotation(Demo.
class
);
// checking the annotation
System.out.println(annotation.str() +
" "
+ annotation.val());
Annotation[] gfg_ann = m.getAnnotations();
for
(
int
i =
0
; i < gfg_ann.length; i++)
{
System.out.println(gfg_ann[i]);
}
}
public
static
void
main(String args[])
throws
Exception
{
gfg();
}
}
Producción:
Gfg Demo Annotation 100 @Demo(str= Gfg Demo Annotation, val=100)
- 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 puede modificar la array devuelta; no tendrá ningún efecto en las arrays devueltas a otras personas que llaman.
Syntax: public Annotation[] getDeclaredAnnotations(). Returns: All annotations directly present on this element. Exception: NA.
// java code illustrating getDeclaredAnnotation() method
import
java.lang.annotation.Annotation;
import
java.lang.annotation.Retention;
import
java.lang.annotation.RetentionPolicy;
import
java.lang.reflect.Method;
// declare a annotation type
@Retention
(RetentionPolicy.RUNTIME)
@interface
Demo
{
String str();
int
val();
}
public
class
PackageDemo
{
// setting values for the annotation
@Demo
(str =
" Gfg Demo Annotation"
, val =
100
)
// a method to call in the main
public
static
void
gfg()
throws
NoSuchMethodException
{
PackageDemo ob =
new
PackageDemo();
Class c = ob.getClass();
// get the method example
Method m = c.getMethod(
"gfg"
);
// get the annotation for class Demo
Demo annotation = m.getAnnotation(Demo.
class
);
// checking the annotation
System.out.println(annotation.str() +
" "
+ annotation.val());
Annotation[] gfg_ann = m.getDeclaredAnnotations();
for
(
int
i =
0
; i < gfg_ann.length; i++)
{
System.out.println(gfg_ann[i]);
}
}
public
static
void
main(String args[])
throws
Exception
{
gfg();
}
}
Producción:
Gfg Demo Annotation 100 @Demo(str= Gfg Demo Annotation, val=100)
- String getImplementationTitle(): Devuelve el título de este paquete.
Syntax: public String getImplementationTitle() Returns: the title of the implementation, null is returned if it is not known. Exception: NA
- String getImplementationVersion(): Devuelve la versión de esta implementación. Consiste en cualquier string asignada por el proveedor de esta implementación y no tiene ninguna sintaxis específica especificada o esperada por el tiempo de ejecución de Java. Puede compararse por igualdad con otras strings de versión de paquete utilizadas para esta implementación por este proveedor para este paquete.
Syntax: public String getImplementationVersion() Returns: the version of the implementation, null is returned if it is not known. Exception: NA
- String getImplementationVendor(): Devuelve el nombre de la organización, proveedor o empresa que proporcionó esta implementación.
Syntax: public String getImplementationVendor(). Returns: the vendor that implemented this package. Exception: NA.
- String getName(): Devuelve el nombre de este paquete.
Syntax: public String getName() Returns: The fully-qualified name of this package as defined in section 6.5.3 of The Java™ Language Specification, for example, java.lang. Exception: NA
// Java code illustrating getName(), getImplementationTitle()
// and getImplementationVendor() and getImplementationVersion()
// methods
class
PackageDemo
{
public
static
void
main(String arg[])
{
Package pkgs[];
pkgs = Package.getPackages();
for
(
int
i=
0
; i<
1
; i++)
{
// name of the package
System.out.println(pkgs[i].getName());
// checking title of this implementation
System.out.println(pkgs[i].getImplementationTitle());
// checking the vendor
System.out.println(pkgs[i].getImplementationVendor());
// version of this implementation
System.out.println(pkgs[i].getImplementationVersion());
}
}
}
Producción:
sun.reflect Java Runtime Environment Oracle Corporation 1.8.0_121
- Paquete estático getPackage(String name): busque un paquete por nombre en la instancia de ClassLoader de la persona que llama. La instancia de ClassLoader de la persona que llama se utiliza para encontrar la instancia del paquete correspondiente a la clase nombrada. Si la instancia de ClassLoader de la persona que llama es nula, se busca el conjunto de paquetes cargados por la instancia de ClassLoader del sistema para encontrar el paquete nombrado.
Syntax: public static Package getPackage(String name) Returns: the package of the requested name. It may be null if no package information is available from the archive or codebase. Exception: NA
- Paquete estático[] getPackages(): Obtiene todos los paquetes actualmente conocidos para la instancia de ClassLoader de la persona que llama. Esos paquetes corresponden a clases cargadas o accesibles por nombre a esa instancia de ClassLoader. Si la instancia de ClassLoader de la persona que llama es la instancia de ClassLoader de arranque, que puede representarse como nulo en algunas implementaciones, solo se devolverán los paquetes correspondientes a las clases cargadas por la instancia de ClassLoader de arranque.
Syntax: public static Package[] getPackages() Returns: a new array of packages known to the callers ClassLoader instance. An zero length array is returned if none are known. Exception: NA
// Java code illustrating getPackages() method
class
PackageDemo
{
public
static
void
main(String arg[])
{
Package pkgs[];
pkgs = Package.getPackages();
Package pkg = Package.getPackage(
"java.lang"
);
for
(
int
i=
0
; i<
1
; i++)
{
System.out.println(pkg.getName());
System.out.println(pkgs[i].getName());
}
}
}
Producción:
java.lang sun.reflect
- String getSpecificationTitle(): Devuelve el título de la especificación que implementa este paquete.
Syntax: public String getSpecificationTitle() Returns: the specification title, null is returned if it is not known. exception: NA.
- String getSpecificationVersion(): Devuelve el número de versión de la especificación que implementa este paquete. Esta string de versión debe ser una secuencia de enteros decimales no negativos separados por “.” y puede tener ceros a la izquierda. Cuando se comparan strings de versión, se comparan los números más significativos.
Syntax: public String getSpecificationVersion(). Returns: the specification version, null is returned if it is not known. Exception: NA.
- String getSpecificationVendor(): Devuelve el nombre de la organización, proveedor o empresa que posee y mantiene la especificación de las clases que implementan este paquete.
Syntax: public String getSpecificationVendor() Returns: the specification vendor, null is returned if it is not known. Exception: NA.
- int hashCode(): Devuelve el código hash calculado a partir del nombre del paquete.
Syntax: Return the hash code computed from the package name. Exception: NA Returns: the hash code.
// Java code illustrating hashCode(), getSpecificationTitle()
// getSpecificationVendor() and getSpecificationVersion()
class
PackageDemo
{
public
static
void
main(String arg[])
{
Package pkgs[];
pkgs = Package.getPackages();
for
(
int
i=
0
; i<
1
; i++)
{
// name of the package
System.out.println(pkgs[i].hashCode());
// checking title
System.out.println(pkgs[i].getSpecificationTitle());
// checking the vendor
System.out.println(pkgs[i].getSpecificationVendor());
// checking version
System.out.println(pkgs[i].getSpecificationVersion());
}
}
}
Producción:
685414683 Java Platform API Specification Oracle Corporation 1.8
- booleano isCompatibleWith(String deseado): Compara la versión de especificación de este paquete con una versión deseada. Devuelve verdadero si el número de versión de la especificación de este paquete es mayor o igual que el número de versión deseado.
Syntax: public boolean isCompatibleWith(String desired). Returns: true if this package's version number is greater than or equal to the desired version number Exception: NumberFormatException - if the desired or current version is not of the correct dotted form.
- boolean isSealed(): Devuelve verdadero si este paquete está sellado.
Syntax: public boolean isSealed() Returns: true if the package is sealed, false otherwise. Exception: NA
- boolean isSealed(URL url): devuelve verdadero si este paquete está sellado con respecto a la URL de origen del código especificada.
Syntax: public boolean isSealed(URL url) Returns: true if this package is sealed with respect to url Exception: NA
- String toString(): Devuelve la representación de string de este Paquete. Su valor es la string “paquete” y el nombre del paquete. Si el título del paquete está definido, se adjunta. Si la versión del paquete está definida, se adjunta.
Syntax: public String toString() Returns: the string representation of the package. Exception: NA
// java code illustrating isCompatibleWith(), toString(),
// isSealed methods
import
java.net.MalformedURLException;
import
java.net.URL;
class
PackageDemo
{
public
static
void
main(String arg[])
throws
MalformedURLException
{
Package pkg = Package.getPackage(
"java.lang"
);
// checking if pkg is compatible with 1.0
System.out.println(pkg.isCompatibleWith(
"1.0"
));
// checking if packet is sealed
System.out.println(pkg.isSealed());
System.out.println(pkg.isSealed(url));
// string equivalent of package
System.out.println(pkg.toString());
}
}
Producción:
true false false package java.lang, Java Platform API Specification, version 1.8
Este artículo es una contribución de Abhishek Verma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@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