我在同一工程下建了两个java文件,每个文件是一个类,分别为userinfo.java和userregist.java,类名为userinfo,userregist,两个类都在一个包里我要在userregist类里用到userinfo,但是我编译userregist时出现
"UserRegist.java": cannot resolve symbol: class user_info in class com.cxhome.UserRegist at line 24, column 27
这样的错误,
怎么回事谢谢

解决方案 »

  1.   

    你的类名不是userinfo,怎么有user_info这个的???
    你看下24行是啥。
      

  2.   

    这个我打错了,类名也是user_info,
    24行我使用了user_info

    private user_info UserInfo;
      

  3.   

    尊守命规则试试,类名的每个单词首字母都为大写,在JAVA中不遵守命名规则会出现很多莫名的问题.
      

  4.   

    private user_info UserInfo;
    上面这句什么意思?太不规范了!LZ还是把两个类的完整内容拷过来吧,否则谁知道出什么莫名其妙的问题呢?
      

  5.   

    package  com.cxhome;
    import  java.util.Date;
    import javax.swing.*;
    class  UserInfo
    {
      private String  userid;
      private String  name;
      private String  password;
      private String  city;
      private String  phone;
      private String  userlogcount;
      private String  userlastlogtime;
      private String  usertype;  public  String   getUserid()
      {
          return this.userid;
      }
      public String  getPassword()
      {
          return this.password;
      }
      public String  getCity()
      {
          return  this.city;
      }
      public  String  getName()
      {
          return  this.name;
      }
      public String getPhone()
      {
          return this.phone;
      }
      public  String  getuserLogcount()
      {
          return  this.userlogcount;
      }
      public  String  getuserLastlogtime()
      {
          return  this.userlastlogtime;
      }
      public String getUsetype()
      {
          return  this.usertype;
      }  public void  setUerid(String c)
      {
        this.userid=c;
      }
      public void  setUsername(String c)
      {
        this.name=c;
      }
      public void  setPassword(String c)
      {
        this.password=c;
      }
      public void  setPhone(String c)
      {
        this.phone=c;
      }
      public void  setCity(String c)
      {
        this.city=c;
      }
      public void  setUsertype(String c)
      {
        this.usertype = c;
      }  public UserInfo() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
      }
    }
      

  6.   

    package com.cxhome;
    import java.sql.*;
    public class UserRegist
    {
      private UserInfo  userinfo;
      private  Connection con;  public  UserRegist()
      {
        String classforname="oracle.jdbc.driver.OracleDriver";
        String url="jdbc:oracle:thin:@localhost:1521:myoracle";
        String user="testuser";
        String pwd="user";
        try
        {
          Class.forName(classforname);
          con=DriverManager.getConnection(url,user,pwd);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      public void setUserInfo(UserInfo UI)
      {
        this.userinfo=UI;
      }
      public void regist() throws Exception
          {
             String reg="insert into use_info values(?,?,?,?,?,?,?,?)";
             try
              {
                PreparedStatement pstmt=con.prepareStatement(reg);
                pstmt.setString(1,userinfo.getUserid());
                pstmt.setString(2,userinfo.getName());
                pstmt.setString(3,userinfo.getPassword());
                pstmt.setString(4,userinfo.getPhone());
                pstmt.setString(5,userinfo.getCity());
                pstmt.setInt(6,0);
                pstmt.setDate(7,new java.sql.Date(new java.util.Date().getTime()));
                pstmt.setString(8,userinfo.getUsertype());
                pstmt.executeUpdate();
              }
              catch(Exception e)
                  {
                       e.printStackTrace();
                       throw e;
                  }
           }}
      

  7.   

    看不出有什么问题~~不过,在代码命名的大小写上有些小问题,可以去参考一下 Sun 的 Java 代码格式http://developers.sun.com/sunstudio/products/archive/whitepapers/java-style.pdf
      

  8.   

    我晕,类名前面加个public就行了
      

  9.   

    你类里定义的是getUsetype(),而在UserRegist重视这样调用的userinfo.getUsertype(),多了一个r
      

  10.   

    public String getUsetype()
      {
          return  this.usertype;
      }
    pstmt.setString(8,userinfo.getUsertype());
      

  11.   

    弱弱的问一句:两个java文件是放在同一个文件夹下么?是否在该文件夹的上级目录里也存在UserInfo.class文件?
      

  12.   

    楼主,我要崩溃了。
    UserInfo类里面的getUsertype()方法,你给写错名称了,你给写成了getUsetype()了。你看看是不是。
    该成getUsertype(),其他的不用动,就可以了。
      

  13.   

    如果你的eclipse的活,你的UserInfo这些代码不用手动去写,都是自动生成的。手动写这样的代码一点意义都没有,说不定那地就被写错了。
    eclipse生成的方法:
    1.先这上你要生成的字段,
    2.点右键,选择:source
    3.在二级菜单中先择:Generate getter and setters...
    4 在弹出的对话框中就可以选择你在生成的字段的get or set方法。还可以生成相应的注释。
      

  14.   

    首先谢谢各位的帮忙,主要以前我学习c++,刚接触java,对语法,格式规范,还有工具不了解。而且我也没看啥java的书,因为用到java所以我直接装了个Jbuilder9,拿来就用了。
    我在UserInfo前面加了public,根据我的理解,如果加了public那么在包外也是可见的,不加public那么在包内是可见的。不知我理解的对不对?
    我也把getUsertype()改过来了,但是我觉得这个函数名称不是自己命名的吗?什么名字自己随意定义?java是不是和c++不一样,c++需要先声明再定义。java是不是直接声明加定义?请高手们帮俺解惑?
    但是还是有错,
    gongyali2005(JAVA 民工) 大大说把编译命令出错信息贴出来,我没用啥命令啊,我只装了runtime和jbulider9,我直接在jb9里点的make userregist.java,不知对不对?是不是不装JDK那么就在“运行”里用不了命令再次谢谢各位的帮忙,俺现在真是黔驴技穷了不知怎么办了呵呵
      

  15.   

    你是说什么错误,你那里面又没有main函数,编译只有那个getUsertype 错误,我验证了的,问问题要说清楚,
    这个我打错了,类名也是user_info,
    24行我使用了user_info

    private user_info UserInfo;你里面的类名是UserInfo 到底是什么,你自己清楚不? 自己不清楚就别来发问
      

  16.   

    呵呵不好意思我刚开始文件名和类名都是user_info,后来我都改成UserInfo,不好意思
    出错信息
    "UserRegist.java": cannot resolve symbol: class UserInfo in class com.cxhome.UserRegist at line 5, column 11
    "UserRegist.java": cannot resolve symbol: class UserInfo in class com.cxhome.UserRegist at line 24, column 27
      

  17.   

    说的好哈
    在java里面是严格遵循大小写的拉
    是非常严格
    楼主怎么要把userinfo写成UserInfo呢?
      

  18.   

    好的我贴出来
    两个文件,文件名分别为UserInfo.java,UserRegist.java,
    在UserInfo.java里代码:
    package  com.cxhome;
    import  java.util.Date;
    import javax.swing.*;
    public class  UserInfo
    {
      private String  userid;
      private String  name;
      private String  password;
      private String  city;
      private String  phone;
      private String  userlogcount;
      private String  userlastlogtime;
      private String  usertype;  public  String   getUserid()
      {
          return this.userid;
      }
      public String  getPassword()
      {
          return this.password;
      }
      public String  getCity()
      {
          return  this.city;
      }
      public  String  getName()
      {
          return  this.name;
      }
      public String getPhone()
      {
          return this.phone;
      }
      public  String  getuserLogcount()
      {
          return  this.userlogcount;
      }
      public  String  getuserLastlogtime()
      {
          return  this.userlastlogtime;
      }
      public String getUsertype()
      {
          return  this.usertype;
      }  public void  setUerid(String c)
      {
        this.userid=c;
      }
      public void  setUsername(String c)
      {
        this.name=c;
      }
      public void  setPassword(String c)
      {
        this.password=c;
      }
      public void  setPhone(String c)
      {
        this.phone=c;
      }
      public void  setCity(String c)
      {
        this.city=c;
      }
      public void  setUsertype(String c)
      {
        this.usertype = c;
      }  public UserInfo() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
      }
    }
      

  19.   

    在UserRegist.java里代码:
    package com.cxhome;
    import java.sql.*;
    public class UserRegist
    {
      private UserInfo  userinfo;
      private  Connection con;  public  UserRegist()
      {
        String classforname="oracle.jdbc.driver.OracleDriver";
        String url="jdbc:oracle:thin:@localhost:1521:myoracle";
        String user="testuser";
        String pwd="user";
        try
        {
          Class.forName(classforname);
          con=DriverManager.getConnection(url,user,pwd);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      public void setUserInfo(UserInfo UI)
      {
        this.userinfo=UI;
      }
      public void regist() throws Exception
          {
             String reg="insert into use_info values(?,?,?,?,?,?,?,?)";
             try
              {
                PreparedStatement pstmt=con.prepareStatement(reg);
                pstmt.setString(1,userinfo.getUserid());
                pstmt.setString(2,userinfo.getName());
                pstmt.setString(3,userinfo.getPassword());
                pstmt.setString(4,userinfo.getPhone());
                pstmt.setString(5,userinfo.getCity());
                pstmt.setInt(6,0);
                pstmt.setDate(7,new java.sql.Date(new java.util.Date().getTime()));
                pstmt.setString(8,userinfo.getUsertype());
                pstmt.executeUpdate();
              }
              catch(Exception e)
                  {
                       e.printStackTrace();
                       throw e;
                  }
           }}
      

  20.   

    然后我编译
    javac UserInfo.java
    没问题
    然后javac UserRegist.java
    出现了:
    "UserRegist.java": cannot resolve symbol: class UserInfo in class com.cxhome.UserRegist at line 5, column 11
    "UserRegist.java": cannot resolve symbol: class UserInfo in class com.cxhome.UserRegist at line 24, column 27
    两个错误
    谢谢,您帮看看
      

  21.   

    UserRegist里面没有正确的import xxx.xxx.xxx.UserInfo类,楼主看下~
      

  22.   

    奇怪了,我放到eclipse下完全没有错误啊.
      

  23.   

    storm_zone() ( ) 
    注意看下,这两个类是在同一个包内,不需要导人的.
      

  24.   

    没有public static void main() 方法,还能运行???
      

  25.   

    难道是我的jbuilder安装的有问题吗
      

  26.   

    估计是的,去装个eclipse吧,这个比较容易上手,而且用的人多.有问题也好问些.
      

  27.   

    不知道你是怎么编译的, 编译这两个文件的时候 先到com的上层目录, 然后
    javac -d . userinfo.java
    javac -d . userregist.java这样试试~