Perguntas com a marcação «java8»

Java 8 refere-se à versão mais recente da plataforma Java.

10
Por que usar Opcional no Java 8+ em vez das verificações tradicionais de ponteiro nulo?
Recentemente, mudamos para o Java 8. Agora, vejo aplicativos inundados de Optionalobjetos. Antes do Java 8 (estilo 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } Após o Java 8 (estilo 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } Não vejo valor agregado Optional<Employee> employeeOptional = employeeService.getEmployee();quando …
110 java  java8 

5
Por que os métodos padrão e estáticos foram adicionados às interfaces no Java 8 quando já tínhamos classes abstratas?
No Java 8, as interfaces podem conter métodos implementados, métodos estáticos e os chamados métodos "padrão" (que as classes de implementação não precisam substituir). Na minha opinião (provavelmente ingênua), não havia necessidade de violar interfaces como essa. As interfaces sempre foram um contrato que você deve cumprir, e esse é …




6
Solução alternativa para exceções verificadas por Java
Aprecio muito os novos recursos do Java 8 sobre interfaces lambdas e métodos padrão. No entanto, ainda me aborreço com exceções verificadas. Por exemplo, se eu apenas quiser listar todos os campos visíveis de um objeto, gostaria de simplesmente escrever isto: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); No entanto, como o …


3
É um antipadrão para usar peek () para modificar um elemento de fluxo?
Suponha que eu tenha um fluxo de coisas e que queira "enriquecê-los" no meio do fluxo, posso usar peek()isso, por exemplo: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Suponha que a alteração das coisas neste momento no código seja um comportamento correto - por exemplo, o thingMutatormétodo pode definir o campo "lastProcessed" para o horário atual. …

1
Inferência de tipo em Java 8
A introdução da nova notação lambda (consulte, por exemplo, este artigo ) no Java 8 exigirá algum tipo de inferência de tipo? Se sim, como o novo sistema de tipos afetará a linguagem Java como um todo?


3
Por que Optional.get () sem chamar isPresent () é ruim, mas não iterator.next ()?
Ao usar a nova API Java de fluxos Java8 para encontrar um elemento específico em uma coleção, escrevo um código como este: String theFirstString = myCollection.stream() .findFirst() .get(); Aqui, o IntelliJ avisa que get () é chamado sem verificar primeiro isPresent (). No entanto, este código: String theFirstString = myCollection.iterator().next(); …
23 java8 


3
É sensato devolver o Streams para onde normalmente devolveríamos Coleções?
Ao desenvolver minha API que não está vinculada a nenhum código legado, muitas vezes me pego escrevendo métodos que são puramente pipeline do Streams encerrados coletando os resultados. Como este: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Agora, a maioria dos clientes dessa classe geralmente precisará da …



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.