Java Android - 在方法里面定义的新类函数?

时间:2016-09-16 19:01:14

标签: java android

你好我最近开始用java编程,特别是在android上,因为我是java的新手,我找到了一些我不理解的东西。

theListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String pickedLanguage = "Your favorite programming language is : " + String.valueOf(parent.getItemAtPosition(position));
                Toast.makeText(MainActivity.this,pickedLanguage,Toast.LENGTH_LONG).show();
            }
        });

我不明白:

  • 方法setOnItemClickListener在其参数列表中包含一个新类?这怎么可能 ?这是怎么回事 ?我刚读了一个关于类的教程,它说类应该在一个文件中,并且应该与文件同名,基本上这是什么意思?我粘贴的示例代码说从这个函数创建一个属于适配器视图的新实例?我以为你只能创建一个新对象而不仅仅是一个来自对象的函数,我基本上不了解整个代码,怎么可能在方法中定义了一个新类?

1 个答案:

答案 0 :(得分:3)

它被称为匿名类,通常用于在调用方法时为方法提供接口实现,而不创建实现接口的单独类以便稍后实例化它。

在这种情况下,方法setOnItemClickListener接收接口OnItemClickListener的实例,我们可以创建一个单独的类来实现该接口,并稍后实例化或仅向该方法提供此时的匿名实现打电话。

您可以找到更多详细信息Anonymous Classes