From 2d6f03f6eb16e8fe08dc202e78e637b436d794a3 Mon Sep 17 00:00:00 2001 From: Juan Marín Noguera Date: Mon, 11 Jan 2021 00:54:50 +0100 Subject: tds/n2 --- tds/n2.lyx | 1345 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 1205 insertions(+), 140 deletions(-) diff --git a/tds/n2.lyx b/tds/n2.lyx index 0177472..dbbc4bc 100644 --- a/tds/n2.lyx +++ b/tds/n2.lyx @@ -174,7 +174,13 @@ static \family default \lang spanish . - Las instancias son creadas por la clase externa mediante + Las instancias son creadas por la clase externa mediante +\end_layout + +\begin_deeper +\begin_layout Standard +\align center + \family typewriter this.new \emph on @@ -214,6 +220,7 @@ parámetro . \end_layout +\end_deeper \begin_layout Itemize \series bold @@ -241,7 +248,12 @@ new Clases anónimas \series default , como las locales pero definidas e instanciadas a la vez con una expresión - +\end_layout + +\begin_deeper +\begin_layout Standard +\align center + \family typewriter new \emph on @@ -264,7 +276,11 @@ cuerpo de la clase \emph default } \family default -, donde +, +\end_layout + +\begin_layout Standard +donde \family typewriter \emph on Superclase @@ -283,6 +299,7 @@ Superclase \end_layout +\end_deeper \end_deeper \begin_layout Section Objetos función @@ -1297,35 +1314,38 @@ Collectors \family typewriter \series bold -static -\begin_inset space ~ -\end_inset - - -\begin_inset space ~ -\end_inset +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open -Collector>> -\begin_inset space ~ -\end_inset +\begin_layout Plain Layout -groupingBy(Function Collector>> groupingBy( +\begin_inset Newline newline \end_inset -super -\begin_inset space ~ -\end_inset +Function) +\end_layout -T,? -\begin_inset space ~ \end_inset -extends -\begin_inset space ~ -\end_inset -K>) \family default \series default Aplica la función a todos los elementos y devuelve un diccionario cuyas @@ -1367,27 +1387,38 @@ T>) \family typewriter \series bold -static -\begin_inset space ~ -\end_inset +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open -> Collector toCollection( +\begin_inset Newline newline \end_inset -Collection> -\begin_inset space ~ -\end_inset +Supplier) +\end_layout -Collector -\begin_inset space ~ \end_inset -toCollection(Supplier) + \family default \series default Almacena los elementos en una colección proporcionada por el parámetro. @@ -1595,39 +1626,46 @@ stream \begin_layout Description \family typewriter - -\begin_inset space ~ -\end_inset +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open -Stream -\begin_inset space ~ -\end_inset +\begin_layout Plain Layout -flatMap(Function Stream flatMap( +\begin_inset Newline newline \end_inset -super +Function>) +\end_layout -Stream>) \family default Devuelve un \emph on @@ -1900,8 +1938,12 @@ Smalltalk, Python y Ruby proporcionan metaprogramación, y Java proporciona introspección. Los objetos clase tienen atributos con las propiedades de una clase y métodos para su acceso y, en el caso de metaprogramación, su modificación. - Esto es útil en inspectores de código, navegadores de clases, creadores - de interfaces de usuario, lenguajes específicos de dominio ( + +\end_layout + +\begin_layout Standard +La introspección es útil en inspectores de código, navegadores de clases, + creadores de interfaces de usuario, lenguajes específicos de dominio ( \series bold DSLs \series default @@ -1911,7 +1953,19 @@ DSLs Domain-Specific Languages \emph default \lang spanish -), etc. +), etc., pero +\begin_inset Quotes cld +\end_inset + +convierte +\begin_inset Quotes crd +\end_inset + + errores en tiempo de compilación en errores en tiempo de ejecución y el + código suele ser largo y tedioso, por lo que se recomienda solo usarlo + para instanciar objetos y acceder a ellos con alguna interfaz o superclase + conocida en tiempo de ejecución. + \end_layout \begin_layout Description @@ -1943,6 +1997,10 @@ Class \family typewriter T \family default +, que es devuelto por la expresión +\family typewriter +T.class +\family default . \end_layout @@ -1950,6 +2008,81 @@ T \begin_layout Description \family typewriter +\series medium +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +static +\begin_inset space ~ +\end_inset + +Class +\begin_inset space ~ +\end_inset + +forName(String) +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +ClassNotFoundException +\end_layout + +\end_inset + + +\family default +\series default + Clase con el nombre indicado. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold Constructor[] \begin_inset space ~ \end_inset @@ -1963,13 +2096,40 @@ throws \end_inset SecurityException +\end_layout + +\end_inset + + \family default - Devuelve los constructores públicos de la clase. + Constructores públicos de la clase. \end_layout \begin_layout Description \family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold Field[] \begin_inset space ~ \end_inset @@ -1983,8 +2143,13 @@ throws \end_inset SecurityException +\end_layout + +\end_inset + + \family default - Devuelve los atributos públicos de la clase o interfaz. + Atributos públicos de la clase. \end_layout \begin_layout Description @@ -1996,7 +2161,7 @@ Class[] getInterfaces() \family default - Devuelve las interfaces que implementa la clase o interfaz. + Interfaces que implementa la clase o interfaz. \end_layout \begin_layout Description @@ -2016,8 +2181,7 @@ throws SecurityException \family default - Devuelve los métodos públicos de la clase o interfaz, incluyendo los de - las superclases. + Métodos públicos de la clase o interfaz, incluyendo los de las superclases. \end_layout \begin_layout Description @@ -2029,7 +2193,7 @@ String getName() \family default - Obtiene el nombre de la entidad. + Nombre de la entidad. \end_layout \begin_layout Description @@ -2041,7 +2205,7 @@ Package getPackage() \family default - Obtiene el paquete en que se encuentra la entidad. + Paquete en que se encuentra la entidad. \end_layout \begin_layout Description @@ -2061,171 +2225,173 @@ T> getSuperClass() \family default - Obtiene la superclase de la clase, salvo de + Superclase de la clase, salvo de \family typewriter Object \family default . \end_layout -\end_deeper \begin_layout Description \family typewriter -\series bold -class +T \begin_inset space ~ \end_inset -Package -\family default -\series default - Paquete de código. -\end_layout +newInstance() +\begin_inset space ~ +\end_inset -\end_deeper -\begin_layout Description +throws +\begin_inset space ~ +\end_inset -\family typewriter -\series bold -package +InstantiationException, \begin_inset space ~ \end_inset -java.lang.reflect +IllegalAccessException +\family default + Crea una instancia de la clase con el constructor por defecto, si existe. \end_layout -\begin_deeper +\end_deeper \begin_layout Description \family typewriter \series bold -final -\begin_inset space ~ -\end_inset +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open +\begin_layout Plain Layout + +\family typewriter +\series bold class \begin_inset space ~ \end_inset -Constructor -\begin_inset space ~ -\end_inset +ClassNotFoundException +\end_layout -implements -\begin_inset space ~ \end_inset -Member + \family default \series default - Constructor de la clase -\family typewriter -T -\family default -. + No se ha encontrado una definición de la clase indicada. \end_layout \begin_layout Description \family typewriter -final -\begin_inset space ~ -\end_inset - +\series bold class \begin_inset space ~ \end_inset -Field -\begin_inset space ~ -\end_inset - -implements -\begin_inset space ~ -\end_inset - -Member +IllegalAccessException \family default - Atributo de una clase. +\series default + El método actualmente en ejecución no tiene acceso a la definición de la + entidad o el miembro indicado. \end_layout -\begin_deeper \begin_layout Description \family typewriter -public -\begin_inset space ~ -\end_inset - -Class +class \begin_inset space ~ \end_inset -getType() +InstantiationException \family default - Tipo del atributo. + La clase no tiene constructor por defecto. \end_layout \begin_layout Description -\begin_inset Note Note -status open - -\begin_layout Plain Layout - -\end_layout +\family typewriter +class +\begin_inset space ~ \end_inset - +Object \end_layout -\end_deeper +\begin_deeper \begin_layout Description \family typewriter -interface +Class \begin_inset space ~ \end_inset -Member +getClass() \family default - Miembro de una clase. + Devuelve la clase en tiempo de ejecución del objeto. \end_layout -\begin_deeper +\end_deeper \begin_layout Description \family typewriter -Class +\series bold +class \begin_inset space ~ \end_inset -getDeclaringClass() +Package \family default - Obtiene la clase que declara el miembro. +\series default + Paquete de código. \end_layout \begin_layout Description \family typewriter -String +class \begin_inset space ~ \end_inset -getName() +SecurityException \family default - Obtiene el nombre del miembro. + Violación de seguridad. \end_layout +\end_deeper \begin_layout Description -... + +\family typewriter +\series bold +package +\begin_inset space ~ +\end_inset + +java.lang.reflect \end_layout -\end_deeper +\begin_deeper \begin_layout Description \family typewriter +\series bold final \begin_inset space ~ \end_inset @@ -2234,7 +2400,68 @@ class \begin_inset space ~ \end_inset -Method +Constructor +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +Executable +\family default +\series default + Constructor de la clase +\family typewriter +T +\family default +. +\end_layout + +\begin_layout Description + +\family typewriter +abstract +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Executable +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +AccessibleObject +\begin_inset space ~ +\end_inset + +implements +\begin_inset space ~ +\end_inset + +Member +\family default + +\end_layout + +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Field \begin_inset space ~ \end_inset @@ -2243,10 +2470,848 @@ implements \end_inset Member +\family default + Atributo de una clase. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +public Object get(Object) throws IllegalArgumentException, +\begin_inset Newline newline +\end_inset + +IllegalAccessException +\end_layout + +\end_inset + + +\family default +\series default + Valor del atributo en el objeto indicado. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +public +\begin_inset space ~ +\end_inset + +Class +\begin_inset space ~ +\end_inset + +getType() +\family default + Tipo del atributo. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +public +\begin_inset space ~ +\end_inset + +void +\begin_inset space ~ +\end_inset + +set(Object,Object) +\family default + Establece el valor del atributo en el primer objeto como el segundo objeto. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +Member +\family default + Miembro de una clase. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +Class +\begin_inset space ~ +\end_inset + +getDeclaringClass() +\family default + Clase que declara el miembro. +\end_layout + +\begin_layout Description + +\family typewriter +String +\begin_inset space ~ +\end_inset + +getName() +\family default + Nombre del miembro. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Method +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +Executable \family default Método de una clase. \end_layout +\begin_deeper +\begin_layout Description + +\family typewriter +Class[] +\begin_inset space ~ +\end_inset + +getParameterTypes() +\family default + Tipos de los parámetros del método. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +Class +\begin_inset space ~ +\end_inset + +getReturnType() +\family default +\series default + Tipo de retorno del método. +\end_layout + +\begin_layout Description + +\family typewriter +Object +\begin_inset space ~ +\end_inset + +invoke(Object,Object...) +\family default + Invoca el método sobre el objeto indicado con los parámetros indicados. + Si el método es estático, el objeto es ignorado y puede ser +\family typewriter +null +\family default +. +\end_layout + +\end_deeper \end_deeper +\begin_layout Section +Anotaciones +\end_layout + +\begin_layout Standard +La anotaciones en Java permiten adjuntar metadatos al código que pueden + ser leídos por el compilador, herramientas como de generación de código + o el propio programa con introspección. +\end_layout + +\begin_layout Standard +Estas se declaran con un tipo introspección, de la forma [ +\family typewriter +\emph on +visibilidad +\family default +\emph default +] +\family typewriter + @interface +\emph on +Nombre +\emph default + { +\emph on +campo +\family default +\emph default +* +\family typewriter + } +\family default +, donde los campos tienen forma +\family typewriter +\emph on +Tipo +\emph default + +\emph on +nombre +\emph default +() +\family default +[ +\family typewriter +default +\emph on +valor +\family default +\emph default +] +\family typewriter +; +\family default +, siendo +\family typewriter +\emph on +valor +\family default +\emph default + del +\family typewriter +\emph on +Tipo +\family default +\emph default + indicado. + Para anotar un tipo, método, etc., se coloca +\family typewriter +@ +\emph on +Anotación +\emph default +( +\family default +[ +\family typewriter +\emph on +valor +\emph default +, +\family default +...] +\family typewriter +) +\family default + o +\family typewriter +@ +\emph on +Anotación +\emph default +( +\emph on +nombre +\emph default += +\emph on +valor +\emph default +, +\family default +... +\family typewriter +) +\family default + como un modificador de este, normalmente antes del resto de modificadores. +\end_layout + +\begin_layout Standard +Si el valor es de tipo +\family typewriter +T[] +\family default +, se puede indicar una lista de un solo elemento indicando simplemente el + elemento. + Si es un enumerado +\family typewriter +\emph on +Enum +\family default +\emph default +, se puede usar +\family typewriter +\emph on +VAL +\family default +\emph default + en vez de +\family typewriter +\emph on +Enum +\emph default +. +\emph on +VAL +\family default +\emph default +. +\end_layout + +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Target(TYPE) @Retention(RUNTIME) @interface +\begin_inset Newline newline +\end_inset + +FunctionalInterface +\end_layout + +\end_inset + + +\family default +\series default + Indica que lo anotado es una interfaz funcional. +\end_layout + +\begin_layout Description + +\family typewriter +@Target(METHOD) +\begin_inset space ~ +\end_inset + +@Retention(SOURCE) +\begin_inset space ~ +\end_inset + +@interface +\begin_inset space ~ +\end_inset + +Override +\family default + Indica que el método sobrescribe a un método de una superclase. + Genera un error si no es así. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE}) +\begin_inset Newline newline +\end_inset + +@Retention(SOURCE) @interface SuppressWarnings +\end_layout + +\end_inset + + +\family default + Suprime las alertas del compilador en el elemento anotado. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +String[] +\begin_inset space ~ +\end_inset + +value +\family default + Conjunto de alertas a suprimir. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang.annotation +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +interface +\begin_inset space ~ +\end_inset + +Annotation +\family default +\series default + Interfaz implementada por todos los tipos de anotación. +\end_layout + +\begin_deeper +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) @interface +\begin_inset Newline newline +\end_inset + +Documented +\end_layout + +\end_inset + + +\family default +\series default + Indica a javadoc que documente la anotación cuando la encuentre en la definició +n de un tipo. + +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +enum +\begin_inset space ~ +\end_inset + +ElementType +\family default +\series default + Tipo de elemento del programa. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +ANNOTATION_TYPE +\family default + Anotación. +\end_layout + +\begin_layout Description + +\family typewriter +CONSTRUCTOR +\family default + Constructor. +\end_layout + +\begin_layout Description + +\family typewriter +FIELD +\family default + Atributo. +\end_layout + +\begin_layout Description + +\family typewriter +LOCAL_VARIABLE +\family default + Variable local. +\end_layout + +\begin_layout Description + +\family typewriter +METHOD +\family default + Método. +\end_layout + +\begin_layout Description + +\family typewriter +PARAMETER +\family default + Parámetro formal. +\end_layout + +\begin_layout Description + +\family typewriter +TYPE +\family default + Clase, interfaz, enumerado o anotación. +\end_layout + +\begin_layout Description + +\family typewriter +TYPE_PARAMETER +\family default + Parámetro de tipo. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) @interface +\begin_inset Newline newline +\end_inset + +Retention +\end_layout + +\end_inset + + +\family default +\series default + Indica hasta cuándo se debe retener una anotación. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +RetentionPolicy +\begin_inset space ~ +\end_inset + +value +\family default + Política de retención. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +enum +\begin_inset space ~ +\end_inset + +RetentionPolicy +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +RUNTIME +\family default + La anotación se guarda en el fichero +\family typewriter +.class +\family default + y la JVM la carga para ser leída con introspección. +\end_layout + +\begin_layout Description + +\family typewriter +SOURCE +\family default + El compilador descarta la anotación. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@Documented +\begin_inset space ~ +\end_inset + +@Retention(RUNTIME) +\begin_inset space ~ +\end_inset + +@Target(ANNOTATION_TYPE) +\begin_inset space ~ +\end_inset + +@interface +\begin_inset space ~ +\end_inset + +Target +\family default + Indica los contextos en que se puede aplicar una anotación. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +ElementType[] +\begin_inset space ~ +\end_inset + +value +\family default + Cuándo es la anotación aplicable. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang.reflect +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +AccessibleObject +\begin_inset space ~ +\end_inset + +implements +\begin_inset space ~ +\end_inset + +AnnotatedElement +\end_layout + +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +AnnotatedElement +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +default boolean isAnnotationPresent(Class) +\end_layout + +\end_inset + + +\family default + Indica si el elemento incluye alguna anotación del tipo especificado. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\end_deeper +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Section +Inyección de dependencias +\end_layout + +\begin_layout Plain Layout +No entra en el examen. +\end_layout + +\end_inset + + +\end_layout + \end_body \end_document -- cgit v1.2.3