小弟初学JAVA
写了两个测试类
TESTA
 
package test; public class testa { 
private String str; public testa() { 
} public testa(String s) { 
this.str = s; 
} public String getStr() { 
return str; 
} public void setName(String s) { 
this.str = s; 


TESTB
package test; import java.util.*;public class testb { 
private List userList; public List getUserList() { 
if(userList == null) { 
userList = new ArrayList(); 
userList.add(new testa("123")); 
userList.add(new UserBean("456")); 
userList.add(new UserBean("789")); 
} return userList; 

}先编译的TESTA
javac -d d:\ testa.java
通过了。
再编译
javac -d d:\ testb.java
就提示
D:\>javac -d d:\ testb.java
testb.java:11: 找不到符号
符号: 类 testa
位置: 类 test.testb
userList.add(new testa("123"));
                 ^
testb.java:12: 找不到符号
符号: 类 UserBean
位置: 类 test.testb
userList.add(new UserBean("456"));
                 ^
testb.java:13: 找不到符号
符号: 类 UserBean
位置: 类 test.testb
userList.add(new UserBean("789"));
                 ^请教各位这怎么解决?还是我写的有问题?

解决方案 »

  1.   

    lz是想生成3个testa实例吗,UserBean是个什么类,有定义吗??
      

  2.   

    第一个错误是你要同时编译:javac    *.java
    第二三个错误应该是你的类 UserBean不能别识别,应该import 它所在的包,java.util.*   中好像没有UserBean
      

  3.   

    呃。不好意思。。粘错了。
    错误提示是。。
    D:\>javac -d d:\ testb.java 
    testb.java:11: 找不到符号 
    符号: 类 testa 
    位置: 类 test.testb 
    userList.add(new testa("123")); 
                     ^ 
    testb.java:12: 找不到符号 
    符号: 类 UserBean 
    位置: 类 test.testb 
    userList.add(new testa("456")); 
                     ^ 
    testb.java:13: 找不到符号 
    符号: 类 UserBean 
    位置: 类 test.testb 
    userList.add(new testa("789")); 
                     ^ 
      

  4.   

    javac -d -cp <你的一堆classpath,包括当前工作目录,要包含testa.class> d:\testb.java
      

  5.   

    呃。貌似跟大小写没关系?
    D:\>javac -d d:\ Testa.javaD:\>javac -d d:\ Testb.java
    Testb.java:11: 找不到符号
    符号: 类 Testa
    位置: 类 test.Testb
    userList.add(new Testa("123"));
                     ^
    Testb.java:12: 找不到符号
    符号: 类 Testa
    位置: 类 test.Testb
    userList.add(new Testa("456"));
                     ^
    Testb.java:13: 找不到符号
    符号: 类 Testa
    位置: 类 test.Testb
    userList.add(new Testa("789"));
                     ^
    3 错误仍然是同样的错误
      

  6.   

    我觉得,如果楼主对于包的概念不是很清楚,不太了解那些文件如何放,如果编译,干脆就把“package test; ”给删掉得了。等以后了解了,再用也不迟
    public class TestA {  
    private String str;  
    public TestA() {  
    }   public TestA(String s) {  
    this.str = s;  
    }   public String getStr() {  
    return str;  
    }   public void setName(String s) {  
    this.str = s;  
    }  
    }  import java.util.*; public class TestB {  
    private List<TestA> userList;   public List getUserList() {  
    if(userList == null) {  
    userList = new ArrayList<TestA>();  
    userList.add(new TestA("123"));  
    userList.add(new TestA("456"));  
    userList.add(new TestA("789"));  
    }   return userList;  
    }  

      

  7.   

    如果楼主一定要用package test; 
    则必须在建一个test的文件夹,把testa.java,testb.java复制到里边
    以楼主的d盘为例
    D:\>md test
    D:\>cd test
    D:\test>copy ..\testa.java
    D:\test>copy ..\testb.java
    D:\test>cd ..
    D:\>javac ./test/testa.java
    D:\>javac ./test/testb.java
    如果testb.java里有main方法,运行的时候是这样输入
    D:\>java test.testb
    仅代楼主参考
      

  8.   

    最终问题找到了。。
    居然是包名的问题
    换了个名字就好了
    真诡异。。郁闷那。。
    换成testbean就通过了
    虽然还是不知道为啥。
    算是受了john_sheep 的启发。。^_^分送上。
    虽然又提示了个东西。
    不过不影响编译使用了。^_^
    D:\>javac -d d:\ Testb.java
    注意:Testb.java 使用了未经检查或不安全的操作。
    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
      

  9.   

    D:\>javac -d d:\ Testb.java 
    注意:Testb.java 使用了未经检查或不安全的操作。 
    注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。注意我给你的程序,看看和你原来的有什么不同.可以解决这个警告.