JAVA EE - pagina 61

Bom dia, Estou encontrando uma dificuldade na pagina 61 do livro JAVA EE quando declaro no AdminBooksBean alguém poderia me ensinar a resolve-lo:

private void populateBookAuthor() {
selectedAuthorsIds.stream().map( (id) -> {
return new Author(id);
}).forEach(product _ add);
}
}

Multiple markers at this line
- add cannot be resolved to a variable
- '’ should not be used as an identifier, since it is a reserved keyword from source
level 1.8 on
- Syntax error on token "
", invalid AssignmentOperator

Parece que ele reclama do undeline “_” de product add.
Deixe essa variável sem o undeline, podendo ficar assim: “productAdd”

Oi Gracyane, obrigado. Se tiramos o underline ele retorna:

productadd cannot be resolved to a variable

Esse underline está exatamente como consta no livro.

Eu li melhor essa parte do livro que você cita e na verdade o autor não colocou o método na integra no livro.

Veja que após o código o autor escreve:

Lembre também de criar o método add na
classe Book , para que possamos adicionar cada um dos autores.
Para que nossa tela funcione de maneira adequada, precisamos
fornecer a lista de autores que deve ser exibida.

Esse método add é referente a variável “product add” que ele coloca de forma fictícia.

No github tem o código completo, ficou assim:

private void populateBookAuthor() {
	selectedAuthorsIds.stream().map( (strId) -> {
		return new Author(Integer.parseInt(strId));
	}).forEach(product :: add);
}

Na classe Book.java adicione:

public void add(Author author){
	authors.add(author);
}

Link do GitHub:
https://github.com/asouza/casadocodigojavaee/commit/e473e3ea0e5960357e6ad1c401e00def8bebbfd9

Gracyane, muito obrigado.

Resolveu. O problema é no underline, quando eu substituí pelos dois pontos, sumiu o erro.

Restou apenas na classe Book.java

public void add(Author author){
authors.add(author);
}

está retornando authors cannot be resolved

Você saberia qual é o erro que estou cometendo ou onde procurar?

Na classe Book deve ter a declaração do atributo authors:

private List<Author> authors = new ArrayList<Author>();

Não deixe também de incluir:

public List<Author> getAuthors() {
	return authors;
}

Qualquer dúvida olha no link que te passei do github que tem a declaração desse atributo na classe Book.java.

1 curtida

Muito obrigado Gracyane, vou comparar os arquivos e ver onde está errado.

abraços!!!