gpt4 book ai didi

java - '.class' 属性如何工作?

转载 作者:IT老高 更新时间:2023-10-28 20:53:49 25 4
gpt4 key购买 nike

第一次用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com