On 28. aug. 2014 20:32, mike matrigali wrote:
Are there "compile" level features that developers are looking for in java7 and above? A lot of my users take much longer to upgrade their
database software, so I do work to backport fixes into older releases.
DERBY-6213 and follow on work that changed code made backports not apply
cleanly any more - which leads to more work and greater possiblity of not correctly backporting changes. I would like to understand the likely non-backward compatible changes that this change would bring about.



Apart from added API capabilities, the majrr changes on the language level are summarized here:


   Enhancements in Java SE 7

 * Binary Literals
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html>
   - In Java SE 7, the integral types (|byte|, |short|, |int|, and
   |long|) can also be expressed using the binary number system. To
   specify a binary literal, add the prefix |0b| or |0B| to the number.
 * Underscores in Numeric Literals
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html>
   - Any number of underscore characters (|_|) can appear anywhere
   between digits in a numerical literal. This feature enables you, for
   example, to separate groups of digits in numeric literals, which can
   improve the readability of your code.
 * Strings in switch Statements
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html>
   - You can use the |String| class in the expression of a |switch|
   statement.
 * Type Inference for Generic Instance Creation
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html>
   - You can replace the type arguments required to invoke the
   constructor of a generic class with an empty set of type parameters
   (|<>|) as long as the compiler can infer the type arguments from the
   context. This pair of angle brackets is informally called the /diamond/.
 * Improved Compiler Warnings and Errors When Using Non-Reifiable
   Formal Parameters with Varargs Methods
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/non-reifiable-varargs.html>
   - The Java SE 7 complier generates a warning at the declaration site
   of a varargs method or constructor with a non-reifiable varargs
   formal parameter. Java SE 7 introduces the compiler option
   |-Xlint:varargs| and the annotations |@SafeVarargs| and
   |@SuppressWarnings({"unchecked", "varargs"})| to supress these warnings.
 * The try-with-resources Statement
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html>
   - The |try|-with-resources statement is a |try| statement that
   declares one or more resources. A /resource/ is an object that must
   be closed after the program is finished with it. The
   |try|-with-resources statement ensures that each resource is closed
   at the end of the statement. Any object that implements the new
   |java.lang.AutoCloseable| interface or the |java.io.Closeable|
   interface can be used as a resource. The classes
   |java.io.InputStream|, |OutputStream|, |Reader|, |Writer|,
   |java.sql.Connection|, |Statement|, and |ResultSet| have been
   retrofitted to implement the |AutoCloseable| interface and can all
   be used as resources in a |try|-with-resources statement.
 * Catching Multiple Exception Types and Rethrowing Exceptions with
   Improved Type Checking
   
<http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html>
   - A single |catch| block can handle more than one type of exception.
   In addition, the compiler performs more precise analysis of rethrown
   exceptions than earlier releases of Java SE. This enables you to
   specify more specific exception types in the |throws| clause of a
   method declaration.

Thanks,
Dag

Reply via email to