【发布时间】:2019-04-28 20:45:41
【问题描述】:
我试图在各种类型的数组中返回一个特定的变量,我只能使用泛型方法。但是,当我尝试执行搜索方法时,我不断收到此错误。有没有人可以给我一些想法你如何解决它?
我正在使用 drjava。
这是调用语句:
System.out.printf( "%nThe item returned from integerArray is: %s",
returnItem( integerArray,
2 ) );
System.out.printf( "%nThe item returned from doubleArray is: %s",
returnItem( doubleArray,
2 ) );
System.out.printf( "%nThe item returned from characterArray is: %s",
returnItem( characterArray,
2 ) );
System.out.printf( "%nThe item returned from petArray is: %s",
returnItem( petArray,
2 ) );
这是我的搜索方法:
public static < T> int returnItem( T[ ] inputArray, int key ){
// ERROR: incompatible types: T cannot be converted to int
for ( int element : inputArray ){
if( key == element ){
return element;
}
}
return -1;
} // end method returnItem
integerArray 返回的项是:3
integerArray返回的项是:3.3
integerArray返回的项是:L
【问题讨论】:
-
方法
returnItem应该返回什么?索引,还是元素本身? -
元素本身
-
如果您已经知道元素并将其传递给方法,在数组中查找并返回它,为什么这很有用?
-
要修复您的方法,您只需将所有
int声明更改为T以使其通用。
标签: java arrays generics search generic-collections