Я вижу некоторый код, использующий class_name.this
как параметр для его контекста, а иногда и использую this
непосредственно в другом демо-коде. Могу ли я предположить, что this
является аббревиатурой от class_name.this
?В чем отличие между class_name.this и этим
ответ
Мы используем this
, если, если ссылки на классы могут быть напечатаны в соответствии с Контекстом. И когда this
объект можите быть, тогда мы используем ClassName.this
(но только если класс является ребенок/супер ребенок [подкласс] класса Context. Как активность/Услуги)
Read What is 'Context' on Android?
Позвольте мне объяснить пример кода (например, я использую Activity
и AsyncTask
)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.startActivity(intent);
// or
MainActivity.this.startActivity(intent);
// Both are same here.
}
private class TestTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onPostExecute(Void result) {
this.startActivity(intent); // You can not do. Because "this" is the current object of AsyncTask not of Activity.
// So you can only use
MainActivity.this.startActivity(intent);
}
}
}
этот используется для ссылки на текущий или живой экземпляр класса, но в тех случаях, когда u должен использовать вложенные классы, а вложенный класс хочет получить доступ к члену внешнего класса, тогда его сделать с помощью class_name.это, как это будет сделано ясно, к какому классу u относится.
относятся эти вопросы: -
What is the difference between Class.this and this in Java
Это специальный синтаксис, который позволяет получить доступ к экземпляру класса внешнего из внутреннего класса. Рассмотрим этот
class X {
class Y {
void y() {
Object y = this;
Object x = X.this;
}
}
}
1.In Outer Class you directly use "this" reference
2.In Inner Class Or Abstract Class implementation Or Interface implementation use "classname.this" reference
ClassName.this
позволяет обращаться к внешнему классу, даже если внутри вложенного класса.
Например MyClickListener
вложен MainAcvitiy
:
private class MyClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
Toast.makeText(MainActivity.this, "I have been clicked", Toast.LENGTH_SHORT).show();
}
}
Вам нужна ссылка на MainActivity.this
, поскольку текущее значение this
является MyClickListener
и вы не хотите заморачиваться передавая ссылку на операцию здесь
- 1. В чем разница между этим: и: этим?
- 2. В чем отличие между supportAVCaptureSessionPreset и canSetSessionPreset
- 3. В чем разница между этим и этим() в java
- 4. В чем разница между «этим» и «getActivity()»?
- 5. В чем разница между этим предложением WHERE и этим объединением?
- 6. В чем основное отличие между следующими утверждениями?
- 7. В чем основное отличие между статическим классом и классом Singleton
- 8. Разница между этим и этим?
- 9. В чем основное отличие между stdlib.h и cstdlib в C++?
- 10. В чем отличие между canny и контуром в opencv?
- 11. В чем основное отличие между пучками и bundleSFX в jspm?
- 12. В чем основное отличие между соленой и ямлом в Python?
- 13. В чем основное отличие между «union» и «struct» в C.?
- 14. В чем основное отличие между ContainerControlledLifetimeManager и HierarchicalLifetimeManager?
- 15. В чем основное отличие между службами Spring и Rest
- 16. В чем основное отличие между Amazon S3 и Amazon EBS
- 17. В чем основное отличие между ReadOnly и Enabled?
- 18. В чем основное отличие между драйверами и пользовательскими приложениями?
- 19. В чем основное отличие между операторами if и if?
- 20. В чем отличие между getApplicationContext() и сервисом Activity's getApplicationContext()?
- 21. В чем отличие между `tableName` и FROM tableName?
- 22. В чем существенное отличие между `tf.contrib.layers.max_pool2d` и` tf.nn.max_pool`?
- 23. В чем основное отличие между B-Rep и параметрическим представлением
- 24. В чем основное отличие между ToString() и Convert.ToString()?
- 25. В чем принципиальное отличие между WebSockets и чистым TCP?
- 26. В чем основное отличие между «if» и «else if»? .
- 27. В чем основное отличие между неявным и явным анализом случаев?
- 28. В чем основное отличие между стандартами сжатия JPEG и EZW?
- 29. В чем основное отличие между протоколом WebSocket и http?
- 30. В чем основное отличие между signcode.exe и signtool.exe?
Возможный дубликат [В чем разница между Class.this и этим в Java] (http://stackoverflow.com/questions/5666134/what-is-the-difference-between-class-this-and-this- in-java) и [Java: Class.this] (http://stackoverflow.com/questions/5530256/java-class-this) , –