1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como utilizar expressões lamba com generics?

Boa noite pessoal,

Gostaria de saber como utilizar expressões lambdas quando se tem uma interface com o generics declarado apenas no método?

Exemplo:

interface GenericMethod {
    <T extends Number> void printNumber(T t);
}

Tentei da seguinte forma porém acontece erro de compilação:

public class Main { 
    public static void main(String[] args) {
        GenericMethod gm = (s) -> System.out.println(s);
    }
}

Erro:

error: incompatible types: invalid functional descriptor for lambda expression
                GenericMethod gm = (s) -> System.out.println(s);                                   
                                   ^
    method <T>(T)void in interface GenericMethod is generic
  where T is a type-variable:
    T extends Number declared in method <T>printNumber(T)
1 error
  • acho que isso resolve seu problema... só por curiosidade, este (s) do lambda você tirou de onde?

    interface GenericMethod { abstract <T extends Number> void printNumber(T t); }

    Lucas   17 de jul de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java8 lambda generics ou faça a sua própria pergunta.