Я пытаюсь распечатать определенный диапазон содержимого в массиве. И я обязан использовать универсальный метод, но я продолжаю получать эти ошибки, говоря плохие типы операндов для бинарного оператора. Я хочу спросить, в какой части я сделал это неправильно, и как я могу исправить ошибки?
Я использую Drjava.
Integer[ ] integerArray = { 1, 2, 3, 4, 5};
Double[ ] doubleArray = { 1.1, 2.2, 3.3, 4.4, 5.5 };
Character[ ] characterArray = { 'H', 'E', 'L', 'L', 'O' };
Pet[ ] petArray = { new Pet( "Bob", "Tortoise", "TSA", "19950315" ),
new Pet( "SweetPea", "Horse", "Genie", "20030214" ),
new Pet( "Little", "Chicken", "John", "20190123" ),
new Pet( "Dale", "Chipmunk", "Sam", "20090527" ),
new Pet( "Smokey", "Bear", "USPW", "19440413" ) };
System.out.printf( "%nRange of integerArray contains:%n" );
printRange( integerArray, 1, 3);
System.out.printf( "%nRange of doubleArray contains:%n" );
printRange( doubleArray, 1, 3 );
System.out.printf( "%nRange of characterArray contains:%n" );
printRange( characterArray, 1, 3 );
System.out.printf( "%nRange of petArray contains:%n" );
printRange( petArray, 1, 3 );
} // end main
// Это часть, в которой я получаю ошибки на
public static <T> void printRange( T[ ] inputArray, T start, T stop ){
// display array elements
// Error:bad operand type T for unary operator '++' and Error: bad operand types for binar operator
for( T element = start; element < stop; element++ )
{
//Error: bad operand types for binary operator '>='
first type: T
second type: int
// Error: bad operand types for binary operator '<='
first type: T
second type: T
//Error: bad operand types for binary operator '<'
first type: T
second type: T
if( start < stop && start >= 0 && stop <= inputArray[inputArray.length-1] )
{
System.out.printf( "%s", element.toString( ) );
}
} // end enhanced for loop
System.out.println( );
} // end method printRange
} // end class ArrayMethods
Это ожидаемый результат.
Диапазон integerArray содержит:
2 3
2,2 3,3
E L