gpt4 book ai didi

java - 内联扩展通用抽象 Template 类

转载 作者:行者123 更新时间:2023-12-02 06:29:28 25 4
gpt4 key购买 nike

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

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);
}

这是创建一个模板(有点像 C 中的宏),这样我就可以实现操作方法并迭代列表中的许多内容。我在执行此内联操作的代码方面遇到问题(我认为就是这个词?),但我不知道如何使用泛型编写它。为了给你一个我正在尝试做的事情的例子,我基本上想做以下事情:

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

但我并没有真正获得任何运气,也没有得到任何有用的错误。我有点超出了我对 Java 的熟悉范围,我已经有一段时间没有使用该语言进行编程了。

到目前为止,我得到的错误(在 Eclipse 中)是“ token 上的语法错误,错误的构造”和“void 是变量操作的无效类型”。据我所知,这并没有真正的帮助。

最佳答案

你的语法有点错误。

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

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

请注意,您无法降低方法的可见性。 action声明为public在父类中,所以action()在子类中至少需要 public 。另外,perform拼写错误。

上面相当于

public class AnonymousClass extends IterableList<String> {
public void action(String s) {
// do something
}
}

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

关于java - 内联扩展通用抽象 Template 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com