Вызов метода в java. Какая разница между this.method() и method() при вызове внутри класса? Есть метод внутри класса.public class RssReaderActivity extends Activity { private void crossfade() { myButton.animate().alpha(1f).setDuration(animationShortDuration).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); step3Button.setVisibility(View.VISIBLE); } }); } Есть обработчик внутри этого же класса:... private View.OnClickListener sayHelloClickedListener = new View.OnClickListener(){ public void onClick(View v){ Integer viewId = (Integer)v.getId(); Resources viewRes = (Resources)v.getResources(); String buttonIdent = (String) viewRes.getResourceEntryName(viewId); Log.v("OnClickLogger",buttonIdent); if( buttonIdent.equals(String.valueOf("button_sayHello")) ) { sayHelloText = (TextView) findViewById(R.id.textView_sayHello); sayHelloText.setText("Hello Man!"); } if( buttonIdent.equals(String.valueOf("button_appStep2")) ){ crossfade(); /* понимаю что здесь нельзя использовать this */ } } }; Можно ли как-то определить глобально this? Насколько верно использование вызова метода crossfade() ?
Когда вы вызываете метод внутри класса без использования ключевого слова "this", компилятор автоматически добавляет "this" перед вызовом метода. Таким образом, нет никакой разницы между this.method() и method() при вызове метода внутри класса.
В вашем примере, использование метода crossfade() в обработчике sayHelloClickedListener корректно. Вы правильно вызываете метод crossfade() без использования ключевого слова "this". В данном контексте, определение "this" не требуется, так как обработчик sayHelloClickedListener уже находится внутри класса RssReaderActivity.
Если вы планируете использовать метод crossfade() вне класса RssReaderActivity или в другом контексте, тогда вам потребуется экземпляр класса RssReaderActivity для вызова метода crossfade(). Глобально определить "this" не возможно, так как "this" всегда относится к текущему экземпляру объекта.
Таким образом, использование вызова метода crossfade() в обработчике sayHelloClickedListener вполне верно и не требует использования ключевого слова "this".
Когда вы вызываете метод внутри класса без использования ключевого слова "this", компилятор автоматически добавляет "this" перед вызовом метода. Таким образом, нет никакой разницы между this.method() и method() при вызове метода внутри класса.
В вашем примере, использование метода crossfade() в обработчике sayHelloClickedListener корректно. Вы правильно вызываете метод crossfade() без использования ключевого слова "this". В данном контексте, определение "this" не требуется, так как обработчик sayHelloClickedListener уже находится внутри класса RssReaderActivity.
Если вы планируете использовать метод crossfade() вне класса RssReaderActivity или в другом контексте, тогда вам потребуется экземпляр класса RssReaderActivity для вызова метода crossfade(). Глобально определить "this" не возможно, так как "this" всегда относится к текущему экземпляру объекта.
Таким образом, использование вызова метода crossfade() в обработчике sayHelloClickedListener вполне верно и не требует использования ключевого слова "this".