【发布时间】:2019-04-24 12:20:10
【问题描述】:
我想制作自己的 Java 流来轻松解析一些字符串。但我无法将对象数组转换为 T 数组。
我已经尝试过的:
// T[] <- Object[]
arr = (T[]) cache.toArray();
和
T[] a = new T[6]; // Cannot create a generic array of T
int index = 0;
for (T i : arr) {
a[++index] = i;
}
代码:
public StreamParser<T> forEach(Consumer<? super T> action) {
ArrayList<T> cache = new ArrayList<T>();
for (T i : arr) {
action.accept(i);
cache.add(i);
}
System.out.println(arr instanceof String[]);
arr = (T[]) cache.toArray();
System.out.println(arr instanceof String[]);
return this;
}
输出:
true
false
【问题讨论】:
-
您正在转换为 T[],然后检查它是否是 String[] 的实例 ... T 是否与 String 匹配?
-
是的,我做到了: String[] out = new StreamParser
() .of(str) .match("'(.*?)'") .parseToArray("[", ":", "]") .forEach(e -> System.out.println(e)) .getArray();
标签: java arrays casting stream content-type