Java 未命名对象

标签 java android object new-operator anonymous-class

我学习编码已经两个月了。我正在 Android 平台上使用 Java 工作。我正在尝试更好地理解未命名的对象。

引用本示例的第 7 行,“this.button2.setOnClickListener(new OnClickListener(){...});”

a) OnClickListener 是一个对象吗? (我认为是的,因为使用了“new”关键字)

b) 可以(并且应该)命名它吗?

c) 它会如何命名?

d) 将来人们会如何提及它?是否可以?如果需要的话,可以在运行时修改吗?

e) 这行得通吗?:“this.button2.setOnClickListener(OnClickListener nameObject = new OnClickListener(){//methods go here});”

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main2);     
    this.button2 = (Button) this.findViewById(R.id.button2);    
    this.button2.setOnClickListener(new OnClickListener()   
    {
        public void onClick(View v) 
        {                       
            Intent i = new Intent(getApplicationContext(), Absolute.class);
            startActivity(i);
        }
    });
}

最佳答案

a)是的,它是一个对象。

b) 是的,它可以被命名,但不一定需要(如果你将来不需要引用它,或者有其他引用方式)它)。

c)你可以这样做:

OnClickListener myOnClickListener = new OnClickListener() {
    // Contents of the OnClickListener go here...
}
this.button2.setOnClickListener(myOnClickListener);

d) 如果您已命名它(如上所示),则可以通过名称来引用它。如果您通过调用对象上的任何修改器方法来引用它,则可以在运行时引用它。

e) 该语法无效。请参阅 (c) 了解进行此调用的正确方法。

关于Java 未命名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081490/

相关文章:

java - 访问 webdriver 中的子元素

java - 如何在android中的fragment中使用谷歌地图?

java - ClassTypevariable_name =null 和 ClassTypevariable_name 之间很少混淆;

javascript - 类和数组真的只是 JavaScript 中的对象吗?

javascript - 如何调用存储在用作另一个函数参数的对象中的函数?

java - httpBasic() 和authorizeRequest() 之间的区别

java - 使 Package Explorer 出现在 Eclipse 中(Window > Show View 不起作用)

java - 如何防止 Gradle 将资源文件包含在 JAR 中

android - Android 项目中的测试 apk 在哪里?

Android Studio 0.6.0 Facebook SDK 导入