Desarrollado por primera vez en Java y desarrollado por primera vez para Android, es una pregunta bastante nueva.¿Cómo funciona una propiedad '.class'?
Actualmente tengo este código:
public void onBtnClicked(View v){
/** Handles button navigation */
@SuppressWarnings("rawtypes")
Class c;
int viewId = v.getId();
switch (viewId) {
case R.id.btnNewTourny :
c = NewTourny.class;
break;
case R.id.btnTeamEditor :
c = EditTeam.class;
break;
case R.id.btnCatEditor :
c = EditCat.class;
break;
case R.id.btnLoadTourny :
c = EditCat.class;
break;
case R.id.btnNewCategory :
c = NewCat.class;
break;
default :
c = Main.class;
}
Intent myIntent = new Intent(v.getContext(), c);
startActivityForResult(myIntent, 0);
}
Breve pregunta:
Lo que hace la propiedad .class hacer, por ejemplo salir en 'c = NewTourny.class'?
¿Por qué no puedo lanzar c como Tourny (que es el padre de todas estas clases)?
largo pregunta:
Este maneja actualmente todas las navegaciones de botón largo de mi aplicación, y funciona bien. Sin embargo, como puede ver, he suprimido una advertencia de "tipo de raw", que aparece cuando lanzo c como clase. Ahora, realmente quiero un código sin advertencias, así que pensé 'bueno, todas estas clases son hijo de' Tourny '', así que pensé que funcionaría, lanzando c como Tourny, pero eso no funciona. Entonces me di cuenta de que realmente no sabía lo que el código "NewTourny.class" en realidad hacía, y esa puede ser la clave de por qué no pude lanzar c como Tourny. Entonces, ¿qué hace .class?
significa esto, que no puedo evitar la proyección de c como clase, y así evitar la advertencia ? – LongInt
Clase c; lo haría desaparecer? o Clase > c; si es posible que ni siquiera sea una actividad! –
Blundell
Clase arroja este error: _Tipo de discrepancia: no se puede convertir de la clase a la clase _, pero la clase > funciona. –
LongInt