26 de jul de 2013

Algumas novas JEPs do Java 8

Para que sejam criadas versões do JDK são utilizadas como bases as JEP (JDK Enhancement Proposals), que são propostas para aperfeiçoamento da JDK. Neste post vou falar sobre algumas JEPs que são prometidas para o Java 8.  






 Adiciona suporte para novas inferências de tipo. Um dos maiores problemas com tipos genéricos no java 5/6/7 são a falta de suporte para inferências para chamadas de métodos encadeadas e relacionamento do contexto para estas inferências.

Por exemplo:

class List<E> {
   static <Z> List<Z> nil() { ... };
   static <Z> List<Z> cons(Z head, List<Z> tail) { ... };
   E head() { ... }
}


Se a chamada for feita dessa forma :

List.cons(42, List.nil()); //error: expected List<Integer>, found List<Object>


Atualmente acontecerá um erro, mas isso deve ser solucionado adicionando a inferência de tipo relacionada ao tipo do parâmetro passado no método.


No caso de chamadas encadeadas:


String s = List.nil().head(); //error: expected String, found Object


Poderiamos remover a carga de tipo-argumentos explícitos, permitindo que o tipo do lado direito do trabalho (String) a fluir através da cadeia de genéricos chamadas de método.


JEP 104: Annotations on Java Types


Permitir o desenvolvimento tipos conectáveis ​​úteis que refinam built-in sistema de tipo de Java.


JEP 123: Configurable Secure Random-Number Generation


Atualmente, a implementação padrão do JDK da API SecureRandom pode usar uma mistura de bloqueio / não bloquear as chamadas de sistema e / ou características do sistema, juntamente com algumas operações internas para gerar número aleatório criptograficamente seguro e valores de seed.  

Esta JEP vem para aperfeiçoar  a geração de números aleatórios, tornando-os passíveis de configuração para operar com restrições de qualidade e responsividade.


JEP 126: Lambda Expressions & Virtual Extension Methods



Muitas outras linguagens de programação orientadas a objetos​​, incluindo aquelas hospedadas na JVM (por exemplo, Groovy, Ruby e Scala) e hospedadas em outras máquinas virtuais (C # no CLR), incluem suporte para closures. Por isso, os programadores Java são cada vez mais familiarizado com o recurso de linguagem e os modelos de programação permite.

O objetivo  desta JEP é adicionar funcionalidades de expressões lambda e virtual extension methods.


JEP 161: Compact Profiles

 

Definir alguns perfis da especificação Java Platform SE para que as aplicações que não necessitam de toda a plataforma possam ser implantadas e executadas em dispositivos pequenos.


Em breve mais algumas ....

Nenhum comentário:

Postar um comentário