10
回答
Java泛型问题,大虾们给点建议
华为云实践训练营,热门技术免费实践!>>>   

代码1:

	public static <T> T[] subArray(T[] args, int start, int end) {
		T[] temp = (T[]) Array.newInstance(String.class, end - start + 1);
		for (int i = start; i <= end; i++) {
			temp[i - start] = args[i];
		}
		return temp;
	}

代码2:

	public static <T> T[] subArray(T[] args, int start, int end) {
		T[] temp = (T[]) Array.newInstance(args[0].getClass(), end - start + 1);
		for (int i = start; i <= end; i++) {
			temp[i - start] = args[i];
		}
		return temp;
	}

代码3:

	public static <T> T[] subArray(Class<T> c,T[] args, int start, int end) {
		T[] temp = (T[]) Array.newInstance(c, end - start + 1);
		for (int i = start; i <= end; i++) {
			temp[i - start] = args[i];
		}
		return temp;
	}

 

这三段代码都是实现的一个功能,就是截数组.

有个问题就是,怎么样才能在不传Class<T>的情况下保证方法正确,而我又不想用args[0].getClass()...

代码1假定传入的数组是String数组.

举报
答复哈
发帖于8年前 10回/742阅
顶部