当前位置: 首页 > 面试题库 >

是什么导致此Java“找不到符号”错误?

阎丰羽
2023-03-14
问题内容

我正在修改继承的代码,并不断收到奇怪的“找不到符号”错误,这使我不知所措。

   //======= Error =========

Compiling 1 source file to /Users/Inprimus/Projects/Workspace/Soft/build/web/WEB-INF/classes
/Users/Inprimus/Projects/Workspace/Soft/WebContent/WEB-INF/classes/fr/service/CarPeer.java:49: cannot find symbol
symbol : method addCarToCompany(java.lang.Long,fr.model.company.Car)
location: class fr.dao.CompanyDAO
cmpDAO.addCarToCompany(idCompany,car);
^
1 error

同行车:

package fr.service;    
import fr.model.company.Car;
import fr.dao.CompanyDAO;
import fr.dao.CarDao;

public class CarPeer {
    private static CarDao carDAO= new CarDao();
    private static CompanyDAO cmpDAO = new CompanyDAO();

    public static void storeCar(Long idCompany, Car car) throws UserServiceException, Exception {
        try {
            cmpDAO.addCarToCompany(idCompany,car);
            System.out.println("Car stored : "+car.toString()+" in "+idCompany);
            carDAO.storeCar(car);
        } catch(DAOException ex) {
            throw new UserServiceException(ex.getMessage(), ex);
        }
    }
}

公司简介:

   package fr.dao;
    import fr.model.accounting.Cost;
    import fr.model.company.Car;

    public class CompanyDAO extends GenericDAO<Company> {

    private enum ChildType {
    COST{
    public void addChildToCompany(Company company, Object child) {
    company.addCost((Cost)child);
    }
    },
    CAR{
    public void addChildToCompany(Company company, Object child) {
    company.addCar((Car)child);
    }
    };
    public abstract void addChildToCompany(Company company, Object child);
    }
private void addChildToCompany(Long idCompany, Object child, ChildType type) throws NotFoundDAOException, AlreadyExistDAOException, Exception {
        try {
            // Begin unit of work
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();

            Company company = (Company) session.load(Company.class, idCompany);

            type.addChildToCompany(company, child);
            session.flush();

            // End unit of work
            session.getTransaction().commit();

        } catch (ObjectNotFoundException ex) {
            HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
            throw new NotFoundDAOException("Identified object " + idCompany
                    + " doesn't exist in database", ex);
        } catch (ConstraintViolationException ex) {
            HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
            throw new AlreadyExistDAOException("The new identity already exsits in database", ex);
        } catch (Exception ex) {
            ex.printStackTrace();
            HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
            throw new Exception(ex);
        }
    }
    public CompanyDAO() {
    super(Company.class);
    }
    public void addCarToCompany(Long idCompany, Car car) throws NotFoundDAOException, AlreadyExistDAOException, Exception {
    addChildToCompany(idCompany, car, ChildType.CAR);
    }
    }

我已经三重检查,但到目前为止找不到任何错误的代码。我正在Netbeans
7.0.1中构建它。我应该提到在构建时遇到此错误,但是我可以运行Web应用程序而没有任何问题(尚未)。但是我担心这种情况可能会重新出现在后面。

我只是在文件树中注意到,在CompanyDAO类上方是类似命名的文件,其格式为:CompanyDAO $
ChildType#.class(#对应于一个数字)我猜它还没有重新编译该类以生成额外的我添加了子类型。我该怎么做?


问题答案:

在CarPeer之前,CompanyDao是否已在类路径上编译并可用?



 类似资料:
  • 错误在第16行: 找不到符号 符号:方法子列表(int,int) 位置:int[]类型的变量nums

  • 问题内容: 我打算将linux工具移植到Windows。该工具在linux系统上运行良好,但是现在在Windows上,我收到此“找不到符号”错误。 我有这个小班级: 并且在执行javac Main.java时现在出现错误: 导入foo.bar:找不到符号^符号:类栏位置:包foo Main.java和bar.java在同一目录中。我想念什么? 问题答案: 一方面,应该称呼为惯用语… 理想情况下,应

  • 问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。

  • (菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。

  • 请解释以下关于“找不到符号”、“无法解析符号”或“找不到符号”的错误(在Java中): 这是什么意思 这个问题旨在产生一个全面的问题

  • 这是因为在我的系统路径中没有对grunt的引用吗?还是别的什么?我已经试着重新安装了几次。