Método JasperPrint em NetBeans não aceita parâmetro de filtro

Olá comunidade programadora, estou perto de finalizar este projeto de aplicativo CRUD de Ordens de Serviços, feito em JDK 8, NetBeans 8.2, integração com banco de dados MySql e desenvolvimento de relatório de ordens de serviço com IReport Designer 5.6.0 com JDK 7.8;

Falta apenas o botão “Print” de Relatório para Ordens de Serviço funcionar também com o parâmetro estabelecido no seguinte método:

NetBeans Print2

Parâmetro IReport Designer

O que pode ser feito? (Detalhe: com parâmetro “null” o erro não aparece e o botão “Print” funciona, apenas com Relatório sem páginas) Agradeço desde já!

Dá próxima vez posta o seu código ao invés de imagens, é muito ruim ter que redigitar o fonte a partir de imagens.

Leu a mensagem da exceção?
Lá está bem claro:
(argument mismatch, HashMap cannot be converted to Map<String, Object>)

Ao invés de declarar assim:

HashMap filter = new HashMap();

Declare assim:

Map<String, Object> filter = new HashMap<>();
1 curtida

Meus cumprimentos staroski, excelentes dicas, estamos quase alcançando a linha de chegada, com respeito a este método:

Map<String, Object> filter = new HashMap<>();

Como faz para preencher os requisitos de uso? O que se deve colocar em “String, Object”?

Simplesmente escreve a linha exatamente do jeito que foi postado.

Ao invés de declarar assim:

HashMap filter = new HashMap();

Declare assim:

Map<String, Object> filter = new HashMap<>();
1 curtida

Após realizar as mudanças o erro apontado em vermelho no código é este:

cannot infer type arguments for HashMap
  reason: cannot use '<>' with non-generic class HashMap

Rapaz, agora fiquei intrigado, o que pode ser essa classe genérica?

Acabei de encontrar o motivo do desencontro de informações, a biblioteca abaixo estava sendo utilizada:

import org.hsqldb.lib.HashMap;

A biblioteca adequada que corrige o problema:

import java.util.HashMap;

Muito obrigado pelo apoio staroski, me ajudou demais, continue ajudando mais pessoas a progamarem um bom futuro!

1 curtida

Classe genérica é qualquer classe/interface que aceita tipos genéricos.
No seu caso, como estava importando a classe HashMap de um pacote diferente, o compilador estava te avisando que aquela classe não era genérica, por isso não podia usar os tipos genéricos.

1 curtida

Realmente, acabou a charada e ainda consegui terminar o projeto, sou muito grato mesmo!