用java的反射机制怎么获取一个类中里面方法中局部变量??我看了java反射的介绍,可以获取类,以及类中的方法,但是我想获取方法中的局部变量进行修改! 请问怎么实现?

解决方案 »

  1.   

    不可能吧,Java 反射不提供这样的功能。
      

  2.   

    public HashMap fy_tw(){
    JFrame f=new JFrame("调温费和取暖费明细查询");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(400, 200);
    f.setResizable(false);
    f.setLocationRelativeTo(null);

    JPanel p1=new JPanel();

    JLabel l_zyh=new JLabel("住院号");
     
    JTextField t_zyh=new JTextField();
    t_zyh.setPreferredSize(new Dimension(200,30));

    JButton btn=new JButton("查询");
    btn.setPreferredSize(new Dimension(100,30));
    btn.addActionListener(query); //// !!!!!!!这个监听中我想获取JTextField 的 内容

    JLabel l_qnf=new JLabel("  取暖费");
    JLabel l_qnfx=new JLabel();
    l_qnfx.setPreferredSize(new Dimension(300,30));

    JLabel l_twf=new JLabel("调温费");
    JLabel l_twfx=new JLabel();
    l_twfx.setPreferredSize(new Dimension(300,30));

    p1.add(l_zyh);
    p1.add(t_zyh);
    p1.add(btn);
    p1.add(l_qnf);
    p1.add(l_qnfx);
    p1.add(l_twf);
    p1.add(l_twfx);

    f.add(p1);
    f.setVisible(true);

    HashMap map=new HashMap();
    map.put("t_zyh", t_zyh); //已测试用HashMap 传过去 就不是这个方法中定义的                //JTextField 了,怎么才能把它传递到下一个监听方法??

    return map; }

    static ActionListener query = new ActionListener() { public void actionPerformed(ActionEvent ae) {
    try {
        Gui gui=new Gui();
                HashMap map=gui.fy_tw();
        JTextField tt=map.get("zyh");
        System.out.println(tt.getText());//这个为空,说明传送失败!!!
        

        JLabel l1=(JLabel) gui.fy_tw().get("l_zyh");
       
        
        HashMap map=gui.fy_tw();
        JTextField t_zyh=(JTextField) map.get("t_zyh");
        
        
        
        
    //     Class c = gui.getClass();
        Method xxx=c.getMethod("fy_tw", null);
      //  JTextField xxx=xxx.
        
        
            
        
    Connection conn=DButil.getConn();
    Statement stat=conn.createStatement();
       
    String sql1="select sum(zjje) qnf from zy_ls_sfd2 where sflb='6100' and zyh='"+t_zyh.getText()+"'";
    String sql2="select sum(zjje) twf from zy_ls_sfd2 where sflb='6200' and zyh='"+t_zyh.getText()+"'";

    ResultSet rs1=stat.executeQuery(sql1);
    rs1.next();
    String qnf=rs1.getString("qnf");
    JTextField l_qnfx=(JTextField) map.get("l_qnfx");
    l_qnfx.setText(qnf);

    ResultSet rs2=stat.executeQuery(sql2);
    rs2.next();
    String twf=rs1.getString("twf");
    JTextField l_twfx=(JTextField) map.get("l_twfx");
    l_twfx.setText(twf);

        conn.close(); } catch (Exception e) {
    e.printStackTrace();
    }
    }
    };
    请问大虾,这个问题怎么解决,就是说怎么把 一个方法中的JTextField  局部变量传递到下一个方法进行修改
    不用 条件是:全局变量!!!