![](/img/trans.png)
[英]Java generics: Calling generic Method “…is not applicable for the arguments…”
[英]Generics in Java - Creating a Generic Method
我想尝试创建一个通用方法,它接受一个数组、数组的长度和一个返回数组中元素位置的元素。 我是 Java 新手,我正在尝试学习泛型。
我似乎无法获得元素的位置,我什至不知道我这样做是否正确,任何建议都会很棒。
public class GenericsProj {
public static void main(String[] args) {
Integer[] intArray = {1, 2, 3, 4};
String[] stringArray = {"one", "two", "three", "four"};
routineArray(intArray, intArray.length, 4);
routineArray(stringArray, stringArray.length, "four");
}
public static <T> void routineArray(T[] array, T length, T element) {
System.out.println("Inside the array: " + Arrays.toString(array));
for (int i = 0; i < array.length; i++) {
if (array[i] == element) {
pos = array[i];
System.out.println(pos);
}
}
}
}
现在,如果元素在数组列表中,则routineArray
为每次出现打印输入中的元素,如果要返回元素的位置,则需要执行pos = i
而不是pos = array[i]
。 在这种情况下,您可以将方法的返回类型从 T 更改为 int。
如果要打印出数组的位置,则必须将 array[i] 更改为 i,array[i] 表示您获得包含 i 索引的 arraylist 的值。 你必须提到 pos 变量的类型。 代码将在下面显示。
if (array[i] == element) {
int pos = i;
System.out.println(pos);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.