android中两个语句的区别

时间:2014-03-03 22:02:30

标签: java android oop syntax


我是Android的新手,而不是java。但要了解面向对象的概念 我从这个网站创建了一个自定义列表视图,我能够以某种方式实现它。

http://androidexample.com/How_To_Create_A_Custom_Listview_-_Android_Example/index.php?view=article_discription&aid=67&aaid=92

adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res);<br>

文章中使用了上述声明,并有截图。但是当我给出相同的声明时,eclipse显示“无法实例化类型customadapter”。我试过清理项目,但没有工作。但是,当我在结尾添加两个大括号时,日食没有显示任何错误并且有效。

adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res){};

我不知道为什么?问题是为什么添加括号工作?它是一个java东西/ android的东西或者我可能不知道的一些OOPS概念。

2 个答案:

答案 0 :(得分:2)

你确定你完全按照这个例子吗?当您尝试实例化一个接口或者我也相信一个抽象类时,通常会发生此错误,本质上这两者都不能实例化。检查CustomAdapter的实施是否属于其中之一。

在你的第二个例子中,你正在创建一个CustomAdapter的匿名子类/实现,因此你有一个具体的可实例化类,错误就会消失。

答案 1 :(得分:-1)

答案很简单。 CustomAdapter类不存在。当您执行new CustomAdapter()时,您正在创建一个对象,类是CustomAdapter的类的实例。 但是在你的项目中,这个类不存在。您必须在名为CustomAdapter.java的文件中创建它,或者您必须在{}内部声明。

添加括号意味着您在一行中创建一个新类的对象,并且您应该在括号内写入方法。

在示例中,您已经实现了CustomAdapter。尝试做到这一点,一切都应该没问题。

然而,这不是Android的事情。这是基本的oop;)