错误编译,“找不到符号”在确实存在的方法上

时间:2014-05-14 17:52:06

标签: java compilation compiler-errors

尝试在NetBeans 8.0中编译项目时出现以下错误:

error: cannot find symbol
        dim_names.add(TheDim.getShortName().toUpperCase());
                            ^
  symbol:   method getShortName()
  location: variable TheDim of type Dimension

所以TheDim,在这种情况下,是ucar.nc2.Dimension类的一个对象,对于那些熟悉netCDF库的人来说(如果它有帮助的话我会使用v4.3)。当我在IDE中浏览库并查看JavaDoc时,方法getShortName()肯定存在。只是说明显而易见的是,netcdfAll-4.3.jar在我的项目库中。当我通过调试模式运行代码时,它工作正常。

不确定这是什么,但它阻止我构建项目。任何可能的解决方案或解决方法?

1 个答案:

答案 0 :(得分:0)

如果使用类型ucar.nc2.Dimension,则错误消息为

location: variable TheDim of type ucar.nc2.Dimension

您可能在默认包中定义了自己的Dimension类。不要在默认包中定义任何类,并且如果在与您的类相同的包中有Dimension类,请使用完全限定名称:ucar.nc2.Dimension

此外,Java中的变量应以小写字母开头。对于Java程序员,您的代码读作“getShortName()是类TheDim的静态方法”,jusyt因为您不尊重Java命名约定。