如何将数组元素的方法返回值或者字段组成新数组

MoeKagari 2017-01-12 07:32:58
用一个for循环可以很简单的解决
但是多了之后想用泛型写一个通用方法
public <S,T> T[] toNewArray(S[] ss,Function<S,T> fun)
但是不能定义泛型数组T[] ts
可能有其他方法解决,但是jdk里面是否有现成的方法可以解决吗?
...全文
255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
insping 2017-01-13
  • 打赏
  • 举报
回复
引用 6 楼 MoeKagari 的回复:
[quote=引用 5 楼 hspingcc 的回复:] 能说的清楚点吗?或者有个例子.
public class A { public class B{} private B b; public B get(){ return b; } } 现在有一个数组A[] as,想要根据get()重新获得一个数组B[] bs;[/quote] 工具方法!
	public <T, P> P[] get(T[] as) {
		P[] rs = null;
		List<P> bs = new ArrayList<>();
		for (int i = 0; i < as.length; i++) {
			bs.add((P)as[i]);
		}
		return bs.toArray(rs);
	}
还不如直接写个private方法来处理差异的数据
MoeKagari 2017-01-13
  • 打赏
  • 举报
回复
引用 5 楼 hspingcc 的回复:
能说的清楚点吗?或者有个例子.
public class A { public class B{} private B b; public B get(){ return b; } } 现在有一个数组A[] as,想要根据get()重新获得一个数组B[] bs;
insping 2017-01-13
  • 打赏
  • 举报
回复
能说的清楚点吗?或者有个例子.
MoeKagari 2017-01-12
  • 打赏
  • 举报
回复
引用 2 楼 MoeKagari 的回复:
[quote=引用 1 楼 xiesisi3 的回复:] 干嘛自己写方法 复制数组可以直接用Arrays.copyOf 或者你觉得这个不好用,你自己仿照Arrays.copyOf写一个基于底层System.arraycopy的方法
不是复制原始数组,是将原始数组的一类数据组成新的数组[/quote] 原始数组元素的内部的一类数据
MoeKagari 2017-01-12
  • 打赏
  • 举报
回复
引用 1 楼 xiesisi3 的回复:
干嘛自己写方法 复制数组可以直接用Arrays.copyOf 或者你觉得这个不好用,你自己仿照Arrays.copyOf写一个基于底层System.arraycopy的方法
不是复制原始数组,是将原始数组的一类数据组成新的数组
xiesisi3 2017-01-12
  • 打赏
  • 举报
回复
干嘛自己写方法 复制数组可以直接用Arrays.copyOf 或者你觉得这个不好用,你自己仿照Arrays.copyOf写一个基于底层System.arraycopy的方法
ryuugu_rena 2017-01-12
  • 打赏
  • 举报
回复
用反射弄了半天出不来,你可以先public <T> T[] toNewArray(T[] t)求出所需要的数据,然后再转成你想要的数组类型吧。你的想法貌似实现不了。或许我能力有限...

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧