CLASS TEST{
    public static String aaa="zzzzzzzzzzzz";
    
    public String find(String str){
      return str; //str就是字符串"aaa"
   }
}外部调用方法find("aaa"),我要求得到zzzzzzzzzzzz,可显示的是aaa 而不是zzzzzzzzzzzz希望大家可以帮帮我 谢谢!

解决方案 »

  1.   

    直接用TEST.aaa难道不能要求得到吗?
      

  2.   

    毫无疑问,显示的是aaa。应该写成这样 : find(TEST.aaa);
      

  3.   

    问题是你是事先不知道aaa的,只可以根据参数str来判断 因为是根据参数来选择类属性的 我要求的是这种解决方法s
      

  4.   

    如果参数不是基本类型,
    可以用Object.getClass()来作判断之后返回不同的值
      

  5.   

    lizhaogui说的对,应该是find(aaa),不是find("aaa");
    原因是:find(aaa)中的aaa是一个String类的变量,而find("aaa"),"aaa"是一个字符串.
      

  6.   

    我这样说吧 
    String value="aaa";
    String XXX=TEST.find(value);
    这个XXX可以得到zzzzzzzzzzzz值吗?
      

  7.   

    是 find(aaa)
    因为你的函数是:
            public String find(String str){ }
    根据你的声明
    该函数的参数是 String 类型的变量, 而不是某个具体的字符串值(如你在这所说的"aaa")
    所以调用时应该使用变量名
      

  8.   

    当然不能
    相反得到的是 aaa 值
      

  9.   

    是啊 我现在想得到zzzzzzzzzzzz 该怎么做
      

  10.   

    不是说得很清楚嘛
    调用 find(aaa)
    理由 上面
      

  11.   

    CLASS TEST{
    public static String aaa="zzzzzzzzzzzz";public String find(String str){
    return str; //str就是字符串"aaa"
    }
    }
    在你的这个例子中,其实当你调用find(String str)方法时,得看你传进去的是值是什么,
    find(String str)是在方法里定义了一个局部变量,返回的就是你传的值,static String aaa在方法外部定义时已经赋值了,但是方法里得到的并不是这个值,返回的只是你传进去的值
    如果你要获得"zzzzzzzzzzzz",就得把aaa传进去
    看看这个改版(用你输入的值改变aaa,再输出):
    public static String aaa="zzzzzzzzzzzz";
    class Test{
    public static String aaa="zzzzzzzzzzzz";

    public String find(String str){
    return Test.aaa=str; //str就是字符串"aaa"
    }
    public static void main(String[] args){
    Test t=new Test();
    t.find("aaaaa");
    System.out.println(t.aaa);
    }
    }
      

  12.   

    但问题是aaa也不是程序写进去的 而是获取的变量 value是变量
    String value="aaa";
    String XXX=TEST.find(value);
      

  13.   

    刚才老兄说的这些:public String find(String str){
    return Test.aaa=str; //str就是字符串"aaa"
    }我如果程序里面写了Test.aaa  把aaa都写出来了 还用这么麻烦吗?
      

  14.   


    class Test{
    public static String aaa="zzzzzzzzzzzz";

    public String find(String str){
    return Test.aaa=str; 
    }
    public static void main(String[] args){
    Test t=new Test();
             String value="aaa"; //value实际上是外部获取的变量值 这里我直接传值aaa
             String XXX=Test.find(value);

             System.out.println(XXX);//显示的是aaa 我希望可以显示为zzzzzzzzzzzz
    }
    }也许我刚才没有说清楚 这次大家帮我看看代码吧  该怎样改?
      

  15.   

    public String find(String str){
    return aaa; 
    }
      

  16.   

    一大伙强人, 我都不知道在说什么...冒昧地问一句, 你们在谈的是Java的反射机制吗?
      

  17.   

    可以直接用
     public String getAaa( ){
       return aaa; 
      }
     不是更好吗
      

  18.   

    return Test.aaa=str; ????
    可以这样吗
      

  19.   

    String value="aaa"; //value实际上是外部获取的变量值 这里我直接传值aaa偏偏要传个aaa,不会传别的呀,你把人家搞混了。
    public static String aaa="zzzzzzzzzzzz";人家说清楚了,到头来,你自己糊涂了。建议“aaa”改成别的。
      

  20.   

    采用反射机制。建议楼主看看 Class 类。