一个类代码
public boolean updateLocal(String phone,String local){

db.Connect(Constants.DBUrl, Constants.DBUserName, Constants.DBUserPass);
String sql ="";
sql = "UPDATE tUserInfo set Id='"+local+"' WHERE Phone='"+phone+"'  and LocalId='';";
System.out.println("getUserInfoById:"+sql);
int result = db.ExecUpdate(sql);
//db.Close();
if(result > 0)
{
return true;
}
else
{
return false;
}
令一个类Constants代码
  public static final String DBUserName = "h";
  public static final String DBUserPass = "h";第一个函数引用了Constants类中的参数,请问第一个类编译后的class文件放在另外一个几乎同样的程序,只是这个Constants类中的DBUserName=“bb”,这样会不会出现错误呢?

解决方案 »

  1.   

    你的意思是说 替换class 文件?把DBUserName = "h" 替换成 DBUserName=“bb”  的class 文件。不会出错吧,都是编译好的class的文件。 
      

  2.   

    数据库连接的参数都改变了、怎么会不错、、但是如果数据库的DBUserName改为bb、那又另当别论了、还有必须在同一个包下面
      

  3.   

    当然不会 但是 运行的时候的 还是 DBUserName = "h"; “请问第一个类编译后的class文件放在另外一个几乎同样的程序”;
    为什么要这样做呢 ?  如果你要放的程序是 CLASS的 ,路径也不会完全一样。。
    如果你要放的程序是java的 ,基本毫无意义,因为要重新编译。。 估计你的意思是因为他们两个名字一样,会冲突;这个就是java包和访问权限的作用了。
    相同的变量名你是不可能放在同一个包同一个类下 。
    你这典型的钻牛角尖。
      

  4.   

    我验证了以个小程序,运行不了[code=java]//class 1:
    public class First {

    public static void main(String[] args){
    System.out.println(Second.M);
    }}//class 1:
    public class Second {

    public static final int M = 2;}
    //class 1:
    public class Second {

    public static final int M = 1;}
    [code]
      

  5.   

    先谢谢各位的回答,是这样的 ,我有一个项目,这个项目源码跟实质生成环境的部署代码稍有不同,就是数据库连接地址不同,我是想把那个class文件在我本地运行编译后,直接把这个编译后的class文件放到生成环境里面,好像不行,这个class连接的数据库地址还是我本地配置的地址的。。
      

  6.   

    解决了,就像3楼说的那样,编译后的那个class文件是带着原来的 Constants.DBUserName=‘h’的,所以直接把这个class文件放到生成环境是会出错的~!