Java 如何自动使用类的名称?
在下面的代码中,我可以编写什么来代替Play.this,这样它就可以自动使用所使用的类的名称,而无需编写名称(在本例中为“Play”)Java 如何自动使用类的名称?,java,android,Java,Android,在下面的代码中,我可以编写什么来代替Play.this,这样它就可以自动使用所使用的类的名称,而无需编写名称(在本例中为“Play”)AlertDialog.Builder=new AlertDialog.Builder(Play.this)没有理由使用Play。代码中的是Play类的一部分。只需使用此: AlertDialog.Builder builder = new AlertDialog.Builder(this); 但是,如果要从内部类执行此操作,则需要此不会指向上下文子类,因此您可
AlertDialog.Builder=new AlertDialog.Builder(Play.this)代码>没有理由使用Play。代码中的是Play
类的一部分。只需使用此
:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
但是,如果要从内部类执行此操作,则需要此
不会指向上下文
子类,因此您可以在父类中创建成员,即:
Context mContext;
在onCreate()中初始化它,即onCreate()
:
并使用听者代码中的mContext
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
没有理由使用Play。这是Play
类的一部分。只需使用此
:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
但是,如果要从内部类执行此操作,则需要此
不会指向上下文
子类,因此您可以在父类中创建成员,即:
Context mContext;
在onCreate()中初始化它,即onCreate()
:
并使用听者代码中的mContext
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
我想你要找的是这个.getClass().getName()
。如果只需要非限定名称,请改用this.getClass().getSimpleName()
。我对Android的了解很少,但在Java中一般都是这样。我想你要找的是这个.getClass().getName()
。如果只需要非限定名称,请改用this.getClass().getSimpleName()
。我对安卓的了解很少,但在Java中通常是这样做的。在设置上下文之前,还有其他一些事情需要考虑(这个)
第一种情况-如果您所在的类在其基本类活动/服务中扩展了上下文,而不是在内部类中,则可以使用“this”
第二,如果您所在的类在其基本类活动/服务中扩展了上下文,并且您所在的类是内部类,那么您可以使用(Play.this),因为本例中的“this”是关于内部类的
第三,如果您在另一个没有上下文的类中,您可以在构造函数或方法中传递它,如:
class Test {
public void createBuilder(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
}
}
在设置上下文(这一点)之前,还有其他事情需要考虑
第一种情况-如果您所在的类在其基本类活动/服务中扩展了上下文,而不是在内部类中,则可以使用“this”
第二,如果您所在的类在其基本类活动/服务中扩展了上下文,并且您所在的类是内部类,那么您可以使用(Play.this),因为本例中的“this”是关于内部类的
第三,如果您在另一个没有上下文的类中,您可以在构造函数或方法中传递它,如:
class Test {
public void createBuilder(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
}
}
你能不能再详细说明一下它出现的地方?“类”是什么意思?我试过使用:AlertDialog.Builder=new-AlertDialog.Builder(this.getClass().this)
,但它不起作用,毫无意义。。。您需要的是上下文
变量,而不是类
。和getClass()。这个不编译。我建议你用谷歌搜索Java中的嵌套类<代码>播放。此
仅允许嵌套类使用所附对象的此
引用。我不清楚您的问题。这里的实际问题是什么?1) 无法自动执行任何操作2)您所显示的代码应该可以正常工作。您能否再显示一点上下文,说明它出现的位置?“类”是什么意思?我试过使用:AlertDialog.Builder=new-AlertDialog.Builder(this.getClass().this)
,但它不起作用,毫无意义。。。您需要的是上下文
变量,而不是类
。和getClass()。这个不编译。我建议你用谷歌搜索Java中的嵌套类<代码>播放。此
仅允许嵌套类使用所附对象的此
引用。我不清楚您的问题。这里的实际问题是什么?1) 无法自动执行任何操作2)您显示的代码应该可以正常工作。如果这在新视图中。OnClickListener
,则是的,您需要播放。此再次阅读作为播放类的一部分的代码。你说的是内部阶级。这是有区别的。内部类是“另一个类的一部分”,IMO:)如果这是在新视图中。一旦单击Listener
,那么,是的,您需要播放。这个再次阅读作为播放类一部分的代码。你说的是内部阶级。这是有区别的。在我看来,内部阶级是“另一个阶级的一部分”。)