Ошибка Java - Тип List <E>не отображается - Тип Mapне видно - PullRequest
1 голос
/ 10 марта 2019

В настоящее время я пишу веб-сайт для университетского проекта с использованием Java.После кодирования почти всего, что мне было нужно, эта ошибка стала появляться на моем экране.Вот изображение ошибки:

image is not visible">

Не только это, но и это тоже, по тому же методу.Вот изображение ошибки:

image is not visible">

Ошибки в методе executarRegras (код приведен ниже).

Мой импорт для java.util.List, и java.util.Map просто отлично, и обе проблемы начали появляться, когда я кодировал веб-часть проекта (Servlet, ViewHelpers, JSP).

И бывают моменты, когда я просто чищу своюкод и восстановить его, и эти ошибки просто перестают отображаться, и код не помечен как «ошибка».(Но затем, если я очищаю и перестраиваю его еще раз, иногда класс снова помечается как ошибка, или он просто успешно строится. Ошибка просто случайная.

Я не нашел никакого решения для этого,только вещи, основанные на импорте и изменениях в пути сборки Java, но ничего не работает.

Других классов с ошибками или несоответствиями нет, это единственный класс, с которым у меня недавно возникли проблемы.

Я использую:

  • Версия Eclipse: 2018-12 (4.10.0)
  • Java: jdk-11.0.2
  • Tomcat: v9.0 Server

По запросу, вот мой путь сборки Java:

JavaBuildPath - Source

Здесь, для того, чтобычтобы мое "ядро" существовало, мне нужно сделать зависимость от проекта "dominio". JavaBuildPath - Projects

JavaBuildPath - Libraries

JavaBuildPath - Order and Export

Кроме того, еслиПолезно, вот основные ссылки проекта: Project references

Код

Вот код:

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;
}

Есть идеи?

1 Ответ

1 голос
/ 11 марта 2019

Решением этой проблемы стало изменение версии с Java 9 на Java 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...