Как '.class' работа с недвижимостью?

Первый раз разрабатываю на Java и первый раз разрабатываю для Android, так что это совсем новичок вопрос.

В настоящее время у меня есть этот код:

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);
}

Короткий вопрос:

Что делает свойство .class , например. in 'c = NewTourny .class '?

Почему я не могу использовать c как Tourny (, который является родителем всех этих классов)?

Длинный вопрос:

В настоящее время это обрабатывает все кнопки навигации в моем приложении и работает нормально. Однако, как вы можете видеть, я подавил предупреждение «rawtype», которое появляется, когда я привожу c как Class. Теперь мне действительно нужен код без предупреждений, поэтому я подумал: «Ну, все эти классы являются потомками Tourny», поэтому я подумал, что это сработает, приведя c к Tourny -, но это не работает. Затем я понял, что на самом деле я не знал, что на самом деле делает код «NewTourny.class», и это может быть ключом к тому, почему я не мог использовать c как Tourny. Итак, что делает.class?

20
задан LongInt 9 April 2012 в 16:49
поделиться