termina seis que por palabras palabra letras formar empieza empiecen empiece con java android constructor

java - seis - ¿Qué tipo de constructor es este, comenzando con<T extiende Drawable & DrawerToggle>?



palabras de 6 letras que empiecen con t (3)

Al igual que los métodos normales, los constructores pueden tomar parámetros de tipo. Esto se menciona en esta sección de la especificación del lenguaje Java:

https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8

A partir de la sintaxis mencionada allí, puede tener parámetros de tipo en la firma:

TypeParameters:

< TypeParameterList >

TypeParameterList:

TypeParameter {, TypeParameter}

y donde TypeParameter se especifica como

TypeParameter:

{TypeParameterModifier} Identifier [TypeBound]

TypeParameterModifier:

Annotation

TypeBound:

extends TypeVariable

extends ClassOrInterfaceType {AdditionalBound}

AdditionalBound:

& InterfaceType

Esta pregunta ya tiene una respuesta aquí:

<T extends Drawable & DrawerToggle> ActionBarDrawerToggle( Activity activity, Toolbar toolbar, DrawerLayout drawerLayout, T slider, @StringRes int openDrawerContentDescRes, @StringRes int closeDrawerContentDescRes) {

Durante la exploración del código fuente de la clase ActionBarDrawerToggle.java , he encontrado que este constructor está declarado sin especificador de acceso. Más bien, su declaración comienza con

<T extends Drawable & DrawerToggle>

Por favor explique, ¿qué significa realmente?


Este bloque especifica el tipo de parámetros del slider (el valor del parámetro del control deslizante debe extender las clases (o interfaces) drawable y drawabletoggle). Buscar genéricos para más información.


T es una declaración de tipo genérico que luego se usa como tipo para uno de los argumentos: slider .

<T extends Drawable & DrawerToggle > significa específicamente que T debe extender / implementar las clases / interfaces Drawable y DrawerToggle .

El especificador de acceso no es obligatorio. En caso de que falte, significa que la clase / método es accesible solo desde clases dentro del mismo paquete.