在学习Android上的TTS时,我遇到了以下的代码片段:
speakBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mTts.speak(words.getText().toString(), TextToSpeech.QUEUE_ADD, null);
}});
我对Java还很陌生,所以我的识别各种结构的信心并不太高。我认为上面看到的是匿名内部类,但“new OnClickListener()”让我感到困惑。请确认和/或更正以下理解:
- 内部类定义在new OnClickListener()之后。
- OnClickListener是内部类派生的超类。
- (匿名)内部类只有一个成员函数:OnClick()。
- @Override在内部类定义中是什么意思?如果这是一个注释,那么我有点困惑,因为此答案表明不能注释匿名内部类。
最后,有没有一种更容易理解的方法来编写上面的片段呢?