私は 2 つのクラスを持っています。1 つ<T extends Comparable<T>
はクラス ヘッダーに itemslf as がclass MaximumTest2 <T extends Comparable<T>>
あり、もう 1 つは持ってpublic class MaximumTest
いますが、以下のコードでわかるように、メソッドは Comparable を拡張します。
実装はどのように異なり、他の実装よりも優れています。ところで、上記の両方のクラスが同じことを行う方法。
class MaximumTest2 <T extends Comparable<T>> { // determines the largest of three Comparable objects public T maximum(T x, T y, T z) // cant make it static but why?? { T max = x; // assume x is initially the largest if ( y.compareTo( max ) > 0 ){ max = y; // y is the largest so far } if ( z.compareTo( max ) > 0 ){ max = z; // z is the largest now } return max; // returns the largest object } } public class MaximumTest { // determines the largest of three Comparable objects public static <T extends Comparable<T>> T maximum(T x, T y, T z) { T max = x; // assume x is initially the largest if ( y.compareTo( max ) > 0 ){ max = y; // y is the largest so far } if ( z.compareTo( max ) > 0 ){ max = z; // z is the largest now } return max; // returns the largest object } public static void main( String args[] ) { MaximumTest2 test2 = new MaximumTest2(); System.out.println(test2.maximum(9, 11, 5)); System.out.printf( "Max of %d, %d and %d is %d\n\n", 3, 4, 5, maximum( 3, 4, 5 ) ); System.out.printf( "Maxm of %.1f,%.1f and %.1f is %.1f\n\n", 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) ); System.out.printf( "Max of %s, %s and %s is %s\n","pear", "apple", "orange", maximum( "pear", "apple", "orange" ) ); }
}
- メソッドを静的にしようとすると
public T maximum(T x, T y, T z)
、Eclipse で次のエラーが発生しますcannot make a static reference to a non-static type T
。これが何を意味するのか分かりませんか?静的にできませんか?
- メソッドを静的にしようとすると
最後に、phrase とは正確には何を意味するの
<T extends Comparable<T>
でしょうか?