我是Android的新手,而不是java。但要了解面向对象的概念
我从这个网站创建了一个自定义列表视图,我能够以某种方式实现它。
adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res);<br>
文章中使用了上述声明,并有截图。但是当我给出相同的声明时,eclipse显示“无法实例化类型customadapter”。我试过清理项目,但没有工作。但是,当我在结尾添加两个大括号时,日食没有显示任何错误并且有效。
adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res){};
我不知道为什么?问题是为什么添加括号工作?它是一个java东西/ android的东西或者我可能不知道的一些OOPS概念。
答案 0 :(得分:2)
你确定你完全按照这个例子吗?当您尝试实例化一个接口或者我也相信一个抽象类时,通常会发生此错误,本质上这两者都不能实例化。检查CustomAdapter
的实施是否属于其中之一。
在你的第二个例子中,你正在创建一个CustomAdapter
的匿名子类/实现,因此你有一个具体的可实例化类,错误就会消失。
答案 1 :(得分:-1)
答案很简单。 CustomAdapter类不存在。当您执行new CustomAdapter()
时,您正在创建一个对象,类是CustomAdapter的类的实例。
但是在你的项目中,这个类不存在。您必须在名为CustomAdapter.java的文件中创建它,或者您必须在{}内部声明。
添加括号意味着您在一行中创建一个新类的对象,并且您应该在括号内写入方法。
在示例中,您已经实现了CustomAdapter。尝试做到这一点,一切都应该没问题。
然而,这不是Android的事情。这是基本的oop;)