我目前正在使用Java编写大学项目的网站。 对几乎所有我需要的代码进行编码后,此错误开始出现在我的屏幕上。这是错误的图片:
在相同方法下,不仅是一个,而且也是一个。 这是错误的图片:
错误与“ executarRegras”方法有关(下面发布的代码)。
我对java.util.List
和java.util.Map的导入都很好,当我对项目的Web部件(Servlet,ViewHelpers,JSP)进行编码时,这两个问题就开始出现。
有时候,我只是清理代码并重建代码,而这些错误只会停止显示,并且代码不会被标记为“错误”。 (但是,如果我再次清理并重新构建它,有时该类会再次被标记为错误,或者它会成功构建。错误只是随机的。
我还没有找到任何解决方案,只有基于导入和Java构建路径上的更改的东西,但没有任何效果。
没有其他有错误或不匹配的类,这是我最近遇到的唯一一个类。
我正在使用:
根据要求,这是我的Java构建路径:
在这里,为了使“核心”存在,我需要依赖“ dominio”项目。
此外,如果有用的话,以下是“核心”项目参考:
代码如下:
package LES1_2019.core.impl.controle;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//myproject internal imports (all classes built sucessfully)
import LES1_2019.core.IDAO;
//import geral
import LES1_2019.core.IFachada;
import LES1_2019.core.IStrategy;
//import resultado
import LES1_2019.core.aplicacao.Resultado;
//import daos
import LES1_2019.core.impl.dao.CategoriaDAO;
import LES1_2019.core.impl.dao.ProdutoDAO;
import LES1_2019.core.impl.negocio.ProdutoMesmoNome;
import LES1_2019.core.impl.negocio.ValidarDadosCategoria;
//import regras de negocio
import LES1_2019.core.impl.negocio.ValidarDadosProduto;
import LES1_2019.dominio.Categoria;
import LES1_2019.dominio.EntidadeDominio;
import LES1_2019.dominio.Produto;
public class Fachada implements IFachada {
private Map<String, IDAO> daos;
private Map<String, Map<String, List<IStrategy>>> rns;
private Resultado objResultado;
public Fachada() {
daos = new HashMap<String, IDAO>();
rns = new HashMap<String, Map<String, List<IStrategy>>>();
CategoriaDAO objCategoriaDAO = new CategoriaDAO();
ProdutoDAO objProdutoDAO = new ProdutoDAO();
daos.put(Categoria.class.getName(), objCategoriaDAO);
daos.put(Produto.class.getName(), objProdutoDAO);
//criando objetos das classes de regras de negocio
ValidarDadosProduto objValidarDadosProduto = new ValidarDadosProduto();
ProdutoMesmoNome objProdutoMesmoNome = new ProdutoMesmoNome();
ValidarDadosCategoria objValidarDadosCategoria = new ValidarDadosCategoria();
//adicionando os objetos das classes de regras a array list de salvar produtos
List<IStrategy> rnsSalvarProduto = new ArrayList<IStrategy>();
rnsSalvarProduto.add(objValidarDadosProduto);
rnsSalvarProduto.add(objProdutoMesmoNome);
//adicionando os objetos das classes de regras a array list de salvar categorias
List<IStrategy> rnsSalvarCategoria = new ArrayList<IStrategy>();
rnsSalvarCategoria.add(objValidarDadosCategoria);
//criando um hasmap das listas com as regras de negocio
Map<String, List<IStrategy>> rnsProduto = new HashMap<String, List<IStrategy>>();
Map<String, List<IStrategy>> rnsCategoria = new HashMap<String, List<IStrategy>>();
//adicionando as operacoes que irao utilizar o map com a lista de regras
rnsProduto.put("SALVAR", rnsSalvarProduto);
rnsCategoria.put("SALVAR", rnsSalvarCategoria);
rnsCategoria.put("ALTERAR", rnsSalvarCategoria);
rns.put(Produto.class.getName(), rnsProduto);
rns.put(Categoria.class.getName(), rnsCategoria);
}
private String executarRegras(EntidadeDominio entidade, String operacao) {
String nmClasse = entidade.getClass().getName();
StringBuilder msg = new StringBuilder();
//this is where I get the first error type Map<K,V> is not visible
Map<String, List<IStrategy>> regrasOperacao = rns.get(nmClasse);
if(regrasOperacao != null) {
//this is where I get the error type List<E> is not visible
List<IStrategy> regras = regrasOperacao.get(operacao);
if(regras != null) {
for(IStrategy s:regras) {
String m = s.processar(entidade);
System.out.println(m);
if(m != null) {
msg.append(m);
msg.append("\n");
}
}
}
}
if(msg.length()>0)
return msg.toString();
else
return null;
}
有什么想法吗?
答案 0 :(得分:1)
解决此问题的方法是将版本从Java 9更改为Java 8。