私の Java コンパイラjavac 1.6.0_37
は、次の小さなプログラムのコンパイルに失敗します。
import java.util.*;
public class QueueTest {
public static void main( String args[] ) {
Queue<String> q = new LinkedList<String>();
}
}
エラーメッセージは次のとおりです。
QueueTest.java:5: incompatible types
found : java.util.LinkedList<java.lang.String>
required: Queue<java.lang.String>
Queue<String> q = new LinkedList<String>();
^
1 error
ドキュメントによると、LinkedList<E>
実装Queue<E>
し、これはコンパイルする必要があります。でこのコードをコンパイルできましたjavac 1.5.0_08
。また、ジェネリックを外しても問題は変わりません (ジェネリックがなくてもコンパイルされません)。
私の質問は、これがバグではないという立場を擁護する人はいますか?