Java 如何自动使用类的名称?

Java 如何自动使用类的名称?,java,android,Java,Android,在下面的代码中,我可以编写什么来代替Play.this,这样它就可以自动使用所使用的类的名称,而无需编写名称(在本例中为“Play”)AlertDialog.Builder=new AlertDialog.Builder(Play.this)没有理由使用Play。代码中的是Play类的一部分。只需使用此: AlertDialog.Builder builder = new AlertDialog.Builder(this); 但是,如果要从内部类执行此操作,则需要此不会指向上下文子类,因此您可

在下面的代码中,我可以编写什么来代替Play.this,这样它就可以自动使用所使用的类的名称,而无需编写名称(在本例中为“Play”)
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
,那么,是的,您需要
播放。这个
再次阅读
作为播放类一部分的代码。你说的是内部阶级。这是有区别的。在我看来,内部阶级是“另一个阶级的一部分”。)