Eclipse OSGI jar (org.eclipse.osgi_3.7.2.v20120110-1415.jar) のクラスを使用し、Eclipse IDE 内で適切にコンパイルされたクラスがあり、それはコンパイラです。しかし、このクラスを Ant および JDK 1.7 コンパイラでコンパイルしようとすると、コンパイラは次のエラーを出力します。
[javac] /data/ant/sw_jdk1.7/test-Java7/com.tsystems.favbg.ui.core/src/com/
tsystems/favbg/ui/core/job/AbstractLoader.java:24:
error: type CopyOnWriteIdentityMap does not take parameters
[javac] private final CopyOnWriteIdentityMap<LoaderListener, String>
eventListenerMap = new CopyOnWriteIdentityMap<>();
と
error: cannot infer type arguments for CopyOnWriteIdentityMap;
[javac] private final CopyOnWriteIdentityMap<LoaderListener, String>
eventListenerMap = new CopyOnWriteIdentityMap<>();
[javac] reason: cannot use '<>' with non-generic class CopyOnWriteIdentityMap
明らかに、javac はクラスがジェネリックを使用していると認識しません。しかし、Java Decompiler で開くと、一般的なパラメーターがよく認識されます。誰かがこの問題を知っていて、解決策を持っていますか?