Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展内联泛型抽象模板类_Java_Generics_Inline_Abstract - Fatal编程技术网

Java 扩展内联泛型抽象模板类

Java 扩展内联泛型抽象模板类,java,generics,inline,abstract,Java,Generics,Inline,Abstract,这是我之前问过的一个后续问题。我编写了以下代码: import java.util.List; import java.util.Iterator; public abstract class IterableList<T> { public void perfrom(List<T> ls) { Iterator<T> l = ls.iterator(); while (l.hasNext()) act

这是我之前问过的一个后续问题。我编写了以下代码:

import java.util.List;
import java.util.Iterator;

public abstract class IterableList<T> {
    public void perfrom(List<T> ls) {
    Iterator<T> l = ls.iterator();
        while (l.hasNext())
            action(l.next());
    }   
    protected abstract void action(T obj);
}
import java.util.List;
导入java.util.Iterator;
公共抽象类IterableList{
公共作废性能(列表ls){
迭代器l=ls.Iterator();
while(l.hasNext())
行动(l.next());
}   
受保护的抽象无效行为(T obj);
}
这是为了创建一个模板(类似于C中的宏),这样我就可以实现action方法并迭代列表中的许多内容。我对内联执行此操作的代码有问题(我想是这个词吗?),但我不知道如何使用泛型编写它。为了给大家举一个我正在尝试做的例子,我主要想做以下几点:

new IterableList<String>{
   void action(String s) {
       // do something
   }
}.perform(myListOfStrings);
新建IterableList{
无效操作(字符串s){
//做点什么
}
}.执行(myListOfStrings);
但我真的没有得到任何运气,也没有给我任何有用的错误。我对Java有点陌生,我已经有一段时间没有用Java编程了


到目前为止,我(在eclipse中)遇到的错误是“令牌上的语法错误、构造放置错误”和“void是变量操作的无效类型”。据我所知,这并没有什么帮助。

你的语法有点错误

List<String> myListOfStrings = ...// some List

new IterableList<String>() { // missing ()
    public void action(String s) {
        // do something
    }
}.perfrom(myListOfStrings);

你的尝试有什么问题?你需要提供更多的信息,特别是什么不起作用,以及你认为它没有做你想做的事情的具体原因。否则没有人能帮助你。根据您提供的小代码,到目前为止它看起来还不错,所以问题出在您没有共享的代码中。我得到了“令牌上的语法错误,结构放错了位置”和“void对于变量操作是无效类型”我不太确定。我正在使用eclipse。这是我得到的唯一错误信息。我不知道怎么了。你可以用泛型的方式定义一个抽象方法,然后在没有泛型的情况下实现它?@SteveP检查最后的编辑。希望这能解释这一点。
public class AnonymousClass extends IterableList<String> {
    public void action(String s) {
        // do something
    }
}

...
new AnonymousClass().perfrom(myListOfStrings);