2016-07-01 4 views
0

より具体的な型を返しますか?つまり、一般的ではないメソッドを参照しようとすることを意味し、何も見つからない場合にのみジェネリックを呼び出します。そのため型消去のJavaジェネリックスやその他のメソッドでオーバーロードしようとしています

public class Test { 


    public static boolean bar(String input){ 
     return false; 
    } 

    public static <E> boolean bar(E input){ 
     return true; 
    } 



} 

public class hi extends Test{ 

    public static void main(String[] args){ 
     boolean result = bar("Hi"); 
     System.out.println(result); 
    } 
} 
+1

1つの 'bar'は' static'です。もう1つは 'static'です。これは過負荷でもオーバーライドでもなく、あなたの後をきれいにしなければならない(つまりあなたのコードを維持しなければならない)不幸な人たちの怒りを引き起こさないようにするべきではありません。 –

答えて

3

は、第二の過負荷をpublic static boolean bar(Object input)にコンパイルされます。したがって、より具体的なStringbar("Hi")に選択されています。

関連する問題