我试图做一个简单的小类,我可以在C/C++中创建类似于宏的东西。基本上,我希望能够调用下面的代码,当我需要,虽然对象列表执行一些操作,例如:Java中的通用抽象类
new IteratableList{
void action() {
// do something
}
}.perform();
我还没有在Java中在相当长的一段程序,我可以“吨弄清楚什么是错我的代码,当我尝试添加抽象操作方法:直到我键入最后一个方法
import java.util.List;
import java.util.Iterator;
public abstract class IteratableList<T> {
public void perfrom(List<T> ls) {
Iterator<T> l = ls.iterator();
while (l.hasNext())
action(l.next());
}
private abstract void action(<T> obj);
}
我的代码没有得到任何错误。我得到的错误告诉我从方法头中删除抽象,当我更改时,我得到了其他错误的列表。我觉得我错过了一个基本的东西。有没有人看到明显的错误?
为什么我低调?澄清意见会更有帮助。 –
Jeroen - 因为你不能有一个私人的抽象方法。由于(根据定义)它必须是'protected'或'public'或'package'才能覆盖子类。我反对这一行'私人抽象 void action(T obj);'。 –
@ElliottFrisch:就在它下面。我首先关注错误的通用任务,而不是访问者。我会编辑它以防止误解。 –