Acerca de iText e Java 8, julgue o item a seguir.Lambda é um...
Acerca de iText e Java 8, julgue o item a seguir.
Lambda é uma melhoria incluída na versão 8 do Java e difere
da expressão equivalente da versão 7 por ser mais rápida e por
ter, obrigatoriamente, declaração e tipo de retorno.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado.
Para compreender a questão, é importante saber que o iText é uma biblioteca utilizada para criar e manipular documentos no formato PDF em Java. No entanto, a questão focaliza em um recurso específico do Java 8, que são as expressões lambda.
As expressões lambda foram introduzidas no Java 8 como parte do esforço para trazer os benefícios da programação funcional para o Java. Elas proporcionam uma sintaxe concisa e funcional para representar instâncias de interfaces funcionais, que são interfaces com um único método abstrato. Expressões lambda podem ser mais rápidas em certos contextos devido à otimização feita pela JVM (Java Virtual Machine), mas a velocidade não é o principal atributo pelo qual elas diferem das abordagens do Java 7.
O enunciado sugere que expressões lambda têm declaração e tipo de retorno obrigatórios, o que não é correto. Uma das características mais notáveis das expressões lambda é justamente a inferência de tipo, que permite que o compilador deduza automaticamente o tipo dos parâmetros e o tipo de retorno com base no contexto. Isso torna o código mais limpo e mais fácil de ler, pois não há necessidade de declarar explicitamente esses tipos na maior parte dos casos.
Portanto, a afirmação de que as expressões lambda são "obrigatoriamente" mais rápidas e requerem declaração de tipo de retorno não é verdadeira, o que torna a alternativa E a correta. A velocidade de uma expressão lambda pode variar e sua sintaxe não exige a declaração explícita do tipo de retorno, o que reflete o objetivo do recurso de proporcionar uma escrita de código mais enxuta e funcional.
Para um estudante que está se preparando para concursos, é essencial entender as nuances da programação em Java, especialmente quando se trata de recursos introduzidos em versões mais recentes como o Java 8. Ter clareza sobre o funcionamento das expressões lambda pode ser um diferencial, pois questões como essa frequentemente aparecem para avaliar a atualização dos candidatos em relação às tecnologias que estão em uso.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Uma função lambda é uma FUNÇÃO SEM DECLARAÇÃO, isto é, não é necessário colocar um nome, um tipo de retorno e o modificador de acesso.
A ideia é que o método seja declarado no mesmo lugar em que será usado.
As funções lambda em Java tem a sintaxe definida como (argumento) -> (corpo)
Uma função lambda pode ter nenhum ou vários parâmetros e seus tipos podem ser colocados ou podem ser omitidos, dessa forma, eles são inferidos pelo Java.
Questão ERRADA
e-
Lambda Expressions were added in Java 8.
A lambda expression is a short block of code which takes in parameters and returns a value. Lambda expressions are similar to methods, but they do not need a name and they can be implemented right in the body of a method.
The simplest lambda expression contains a single parameter and an expression:
parameter -> expression
https://www.w3schools.com/java/java_lambda.asp
Marquei errado porque no Java 7 não possui expressões lambda, esse recurso foi adicionado no Java 8
Errado
Lambda é de fato uma funcionalidade introduzida no Java 8, no entanto, sua vantagem não é principalmente sobre ser mais rápida, mas sim em oferecer uma sintaxe mais concisa e funcionalidades que facilitam a programação funcional.
Lambda permite a criação de expressões lambda, que são funções anônimas que podem ser usadas para representar instâncias de classes de interface funcional. Interfaces funcionais são interfaces que têm apenas um método abstrato.
Além disso, as expressões lambda não precisam declarar o tipo de retorno. O compilador Java é capaz de inferir o tipo de retorno com base no contexto. Por exemplo, na expressão lambda `(a, b) -> a + b`, o compilador infere o tipo de retorno baseado no tipo dos parâmetros `a` e `b`.
Em resumo, as expressões lambda trazem para Java alguns dos recursos de programação funcional disponíveis em outras linguagens, tornando o código mais conciso e legível em certos contextos, mas não necessariamente mais rápido.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo