[Java 7] As alterações aprovadas:

E como ele vai saber o que deve ser colocado nesse fainally magicamente gerado?

Nem toda classe implementa Closeable. É só para Closeables?

Muito bom a Collection Literals, é uma das coisas que eu mais sentia falta em Java

Só é uma pena botarem essa palhaçada de Automatic Resource Management mágico ao invés de nos darem closures, que serviriam pra fazer isso e muito mais

[quote=Paulo Silveira]E como ele vai saber o que deve ser colocado nesse finally magicamente gerado?

Nem toda classe implementa Closeable. É só para Closeables?[/quote]

Esse ARM é para classes que implementam Disposable (no caso do .NET o “using” é só para classes que implementam IDisposable).

Ele chamaria o novo método “dispose”, que as classes que querem aproveitar o recurso de ARM devem implementar, e que faria o tal do “close com try/catch”, por exemplo.

Isso é mais um prego no caixão dos “finalizers”, que são uma péssima idéia que foi implementada no Java desde os primórdios.

[quote=paulo.ubuntu]Até que enfim o java está começando a sair do forno, em outro posto comentei que estava com a impressão que o java tava esfriando, com mudanças assim acredito que melhore um pouco.

a unica coisa que senti falta foi de multiplos catch

try{
 //Alguma Coisa
}catch(NumberFormatException,AlgumaException ex){
//Algum Tratamento
}

Acho que isso ia quebrar um galhão[/quote]

Quebra um galho, mas não faço a mínima idéia como invocaria métodos dessas exceções. Qual o tipo de ex?

Algo como

try{
 //Alguma Coisa
}catch(NumberFormatException|AlgumaException extends Exception ex){
//Algum Tratamento
}

baseado no generics daria um tipo para resolver o ex, e pode usá-lo em build time.

[quote=Bruno Laturner][quote=paulo.ubuntu]Até que enfim o java está começando a sair do forno, em outro posto comentei que estava com a impressão que o java tava esfriando, com mudanças assim acredito que melhore um pouco.

a unica coisa que senti falta foi de multiplos catch

try{
 //Alguma Coisa
}catch(NumberFormatException,AlgumaException ex){
//Algum Tratamento
}

Acho que isso ia quebrar um galhão[/quote]

Quebra um galho, mas não faço a mínima idéia como invocaria métodos dessas exceções. Qual o tipo de ex?

Algo como

try{
 //Alguma Coisa
}catch(NumberFormatException|AlgumaException extends Exception ex){
//Algum Tratamento
}

baseado no generics daria um tipo para resolver o ex, e pode usá-lo em build time.[/quote]

isso que você chamou de “baseado em generics”, já não existe!? (mas não tem nada a ver com generics).
ex:

try {}catch(Exception e){}
já trata qualquer classe que herde Exception.

E sobre generics em tempo de execução!? nops.

[quote=vaninh0]isso que você chamou de “baseado em generics”, já não existe!? (mas não tem nada a ver com generics).
ex:

try {}catch(Exception e){}
já trata qualquer classe que herde Exception.

E sobre generics em tempo de execução!? nops.[/quote]

Leia novamente sobre o que estou falando. Não quero pegar todas as exceptions.

List<Integer> powersOf2 = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};
Map<String, Integer> ages = {"John" : 35, "Mary" : 28, "Steve" : 42};

lembra bastante json :-o

static String readFirstLineFromFile2(String path) throws IOException
{
    try (BufferedReader reader = new BufferedReader(new FileReader(path))
    {
        return reader.readLine();
    }
    // reader.close() é chamado automaticamente
}

esse aqui vai ser muito bom pra treinar estagiario a não fechar conexão com o banco :XD:

Putz, não vai ter properties? :frowning:

JSR 294 Improved Modularity Support (superpackages)

superpackage example.bar.lib {   
  
    // member packages   
    member package example.bar.lib;   
  
    // member superpackages   
    member superpackage example.bar.lib.net, example.bar.lib.xml;   
  
    // list of exported types   
    export example.bar.lib.Table;   
  
    export superpackage example.bar.lib.net;   
}   

alguem ajuda a entender? Sei que tem a ver com visibilidade mas não entendi patavinas.

[quote=mvargens]JSR 294 Improved Modularity Support (superpackages)

superpackage example.bar.lib {   
  
    // member packages   
    member package example.bar.lib;   
  
    // member superpackages   
    member superpackage example.bar.lib.net, example.bar.lib.xml;   
  
    // list of exported types   
    export example.bar.lib.Table;   
  
    export superpackage example.bar.lib.net;   
}   

alguem ajuda a entender? Sei que tem a ver com visibilidade mas não entendi patavinas.[/quote]

A notação agora é diferente:

//org/netbeans/core/module-info.java @Version("7.0") @ImportModule(name="java.se.core", version="1.7+") module org.netbeans.core; http://www.infoq.com/articles/java7-module-system

Basicamente é para não deixar que APIs internas sejam vistas por classes de fora, e também facilitar a distribuição das APIs em partes, conforme elas são necessitadas.

Antes só tenho que avisar que é bem capaz dessa JSR não sair, até hoje não chegaram num acordo. Sem falar que veio o Projeto Jigsaw como uma espécie de concorrente, e também o OSGi que suprem bastante do que essa modularização visa a resolver.

Interessante a iniciativa espero que estas mudanças vinguem seria duas “mãos na roda” bom post

coisinhas uteis…

Posso estar errado… mas não ter inclusido closures foi a cagada do ano na tencologia java… talvez a maior dos ultimos anos…

[quote=chun]Posso estar errado… mas não ter inclusido closures foi a cagada do ano na tencologia java… talvez a maior dos ultimos anos…

[/quote]

Não sei se concordo. Closures as vezes me parece ser algo que seria muito “artificial” na linguagem Java, sei lá…

[quote=gangrel-br][quote=chun]Posso estar errado… mas não ter inclusido closures foi a cagada do ano na tencologia java… talvez a maior dos ultimos anos…

[/quote]

Não sei se concordo. Closures as vezes me parece ser algo que seria muito “artificial” na linguagem Java, sei lá…[/quote]

Seriam maravilhosas do ponto de vista de uma serie de frameworks…
e com certeza resultaria em uma dimunuicao benigna da verbosidade de Java.

Galera, e a velocidade do java 7, vai superar a do java 6? Isso depende da jdk, ou existe uma velocidade “minima” para as jdks? Eu me lembro quando atualizei minha jdk da 1.4 para a 5… tive uma enorme impressão de aumento de velocidade…

Sinto te desapontar… mas acredito que não erá tem um grande ganho…

[quote=chun]Seriam maravilhosas do ponto de vista de uma serie de frameworks…
e com certeza resultaria em uma dimunuicao benigna da verbosidade de Java.[/quote]

Pior que a maioria das propostas de closures parecem piorar a verbosidade da linguagem, ou fogem muito ao padrão da linguagem.

"

Boa, antes do post do Luca eu estava me perguntando se a versão ia ser mesmo só um monte de syntax suggars.
Não que eles não facilitem a vida mas não acrescentaram nada de realmente novo à linguagem.