> EG I haven't yet tested for JAR drop-in compatibility, eg if in 3.1 we
> wanted to swap in more generics, would a 3.0 app be able to drop in
> the 3.1 Lucene jar w/o problems?

It should, because in the compiled JVM code, generics do simply not appear.
This is why you can simply run a very old java class file using the
collection API with generics in Java 1.5 or 6. So you see, the best example
is Java itself.

Old programs e.g. link to ArrayList, but Java 1.5 has ArrayList<Something>.
The program will simply run, there changed nothing in the code semantics,
only in compile time semantics.

The only thing: Somebody compiling code with Java 1.5, that was written for
older Lucene, but using a new generics-enabled Lucene would get warnings
about unsafe use of generics APIs.

Sun states: "Generics are implemented by type erasure: generic type
information is present only at compile time, after which it is erased by the
compiler. The main advantage of this approach is that it provides total
interoperability between generic code and legacy code that uses
non-parameterized types (which are technically known as raw types). The main
disadvantages are that parameter type information is not available at run
time, and that automatically generated casts may fail when interoperating
with ill-behaved legacy code. There is, however, a way to achieve guaranteed
run-time type safety for generic collections even when interoperating with
ill-behaved legacy code."
(http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html)

Uwe


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to