第一次用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 属性有什么作用,f.ex。在'c = NewTourny.class'?
为什么我不能将 c 转换为 Tourny(这是所有这些类的父级)?
长问题:
这目前处理整个我的应用程序中的所有按钮导航,并且工作正常。但是,如您所见,我抑制了“原始类型”警告,当我将 c 转换为 Class 时会出现这种警告。 现在,我真的想要一个没有警告的代码,所以我想'好吧,所有这些类都是'Tourny'的 child ',所以我认为它可以工作,将 c 转换为 Tourny - 但这不起作用。然后我意识到,我真的不知道代码“NewTourny.class”实际上做了什么,这可能是为什么我不能将 c 转换为 Tourny 的线索。那么,.class 有什么作用呢?
最佳答案
它并没有真正做太多。 NewTourney.class
更多的是一种特定于语言的方式来编写“NewTourney
的类的对象”。这个速记允许人们引用 class of a NewTourney
,而不是处理 NewTourney
的特定已经存在实例.
在您的具体情况下,我敢猜测 Activity
最终创建一个类的实例来处理 Action ,或者至少保存 Action 的上下文敏感数据。
关于java - '.class' 属性如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10076629/