首页 > 解决方案 > 从命令行编译 Java '找不到符号'

问题描述

我正在编写一个可以存储任何对象的缓存系统。我有这两个类:

public class Cache<T> { ... }

public class CacheDriver<T> { private Cache<T> cache1, cache2; }

我还有一个包含我的主要方法和测试代码的测试类。

public class Test { CacheDriver<String> c; }

当我尝试从命令行编译时

javac Test.java

我明白了:

Test.java:8: error: cannot find symbol
private CacheDriver<String> c;
        ^
symbol:   class CacheDriver
location: class Test

当我实例化 CacheDriver 对象时,我也有同样的错误:

c = new CacheDriver(Integer.parseInt(args[0]), Integer.parseInt(args[1]));

我做了一些研究,认为这可能与我的通用 T 和两个类不共享同一个类有关,但我不知道如何解决这个问题。我该怎么做?

编辑:我他们在一个包裹里面。我将它们从包中直接移到 src 文件夹中,并且它起作用了。不完全确定为什么,但我会接受。

标签: javagenericscannot-find-symbol

解决方案


推荐阅读