我的java类由myeclipse自动编译为class文件,然后我用反编译工具打开class文件,为什么java类和反编译的class文件有区别 

解决方案 »

  1.   

    这个是java类里面的方法:
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {
            Locale localeStruts = null;
            localeStruts = (Locale) req.getSession().getAttribute(Globals.LOCALE_KEY);
            String locale = "en";
            if (localeStruts != null && Locale.CHINA.equals(localeStruts)) {
                locale = "zh";
            }
            String email = req.getParameter("email");
            String userNme = req.getParameter("names");
            System.out.println("UserName = " + userNme); 
            String cmpyNme = req.getParameter("company_name");
            Context initial = null;
            try {
                initial = new InitialContext();
                GuestSubscripeHome home = null;
                home = (GuestSubscripeHome) initial.lookup("java:comp/env/ejb/GuestSubscripeBean");
                System.out.println("home");
                GuestSubscripe sl = home.create();
                System.out.println("create    "+sl.toString()+"end");
                GssUserVO gssUserVO = sl.isEmailExist(email.trim());
                System.out.println("gssUserVO"+gssUserVO);
                if (gssUserVO != null) {
    /*                  if("U".equalsIgnoreCase( gssUserVO.getUserStatus())){
                            req.setAttribute("unsub","Y");
                            gssUserVO.setUserStatus("C");
                            sl.sendConfirmEmail(gssUserVO);
                            return mapping.findForward("emailexist");
                      }
                      gssUserVO.setUserStatus("U");
                      sl.sendConfirmEmail(gssUserVO);
                      return mapping.findForward("emailexist");*/
                    req.setAttribute("trueUser", "Y");
                    req.setAttribute("laststatus", gssUserVO.getUserStatus());
                    req.setAttribute("action", "subscribe");
                    String status = gssUserVO.getUserStatus();
                    if ("C".equalsIgnoreCase(status))
                        gssUserVO.setUserStatus("U");
                    else
                        gssUserVO.setUserStatus("C");
                    sl.sendConfirmEmail(gssUserVO, locale);
                    return mapping.findForward("emailexist");
                }
                System.out.println("===========");
                List serviceTypeID = sl.getAllServiceTypeID();
                System.out.println(serviceTypeID.size()+"size");
                List templateUuids = new ArrayList();
                System.out.println("hservices:"+req.getParameter("hservices"));
                String hservices = req.getParameter("hservices");
                if (serviceTypeID != null) {
    //                String s = null;
    //                String[] ss = null;
                    String service[] = new String[]{hservices};
                    for (int i = 0; i < serviceTypeID.size(); i++) {
                     if(service!=null&&!"".equals(service)){
                     for (int j = 0; j < service.length; j++) {
                     System.out.println("service[j]===="+service[j]);
    //                 String templateUuid = sl.findTemplateUuidByLoopAbbrv(service[j]);
    // templateUuids.add(templateUuid);
                     templateUuids.add(service[j]);
    }
                     }
    //                    s = "h_" + ((String) serviceTypeID.get(i)).trim();
    //                    ss = req.getParameterValues(s);
    //                    if (ss != null) {
    //                        for (int j = 0; j < ss.length; j++) {
    //                            templateUuids.add(ss[j]);
    //                            System.out.println("GssTempldateUuid:"+ss[j]);//getGssTempldateUuid()
    //                        }
    //                    }
                    }               
                }
                gssUserVO = new GssUserVO();
                gssUserVO.setUserStatus("C");
                gssUserVO.setUserEmail(email);
                gssUserVO.setUserNme(userNme);
                gssUserVO.setCmpyNme(cmpyNme);
                String userUuid = sl.createGuestSubScripe(email, userNme, cmpyNme, "N", templateUuids);
                gssUserVO.setGssUserUuid(userUuid);
                sl.sendConfirmEmail(gssUserVO, locale);
            } catch (NamingException e) {
                req.setAttribute("exception",e);
                logger.error(e.toString());
                return mapping.findForward("error");
            } catch (RemoteException e) {
                req.setAttribute("exception",e);
                logger.error(e.toString());
                return mapping.findForward("error");
            } catch (CreateException e) {
                req.setAttribute("exception",e);
                logger.error(e.toString());
                return mapping.findForward("error");
            }
            return mapping.findForward("result");
        }
      

  2.   

    这不是标准唯一的互相转化,就像给你一句中文A,你翻译成英文B,再拿去给你女朋友翻译成中文,结果她没有翻译成A。你不能打她一顿吧?
      

  3.   

    这个是class反编译出来的:
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res)
        {
            String locale;
            String email;
            String userNme;
            String cmpyNme;
            Locale localeStruts = null;
            localeStruts = (Locale)req.getSession().getAttribute("org.apache.struts.action.LOCALE");
            locale = "en";
            if(localeStruts != null && Locale.CHINA.equals(localeStruts))
                locale = "zh";
            email = req.getParameter("email");
            userNme = req.getParameter("names");
            System.out.println("UserName = " + userNme);
            cmpyNme = req.getParameter("company_name");
            Context initial = null;
            GuestSubscripe sl;
            Context initial = new InitialContext();
            GuestSubscripeHome home = null;
            home = (GuestSubscripeHome)initial.lookup("java:comp/env/ejb/GuestSubscripeBean");
            System.out.println("home");
            sl = home.create();
            System.out.println("create    " + sl.toString() + "end");
            GssUserVO gssUserVO = sl.isEmailExist(email.trim());
            System.out.println("gssUserVO" + gssUserVO);
            if(gssUserVO == null)
                break MISSING_BLOCK_LABEL_302;
            req.setAttribute("trueUser", "Y");
            req.setAttribute("laststatus", gssUserVO.getUserStatus());
            req.setAttribute("action", "subscribe");
            String status = gssUserVO.getUserStatus();
            if("C".equalsIgnoreCase(status))
                gssUserVO.setUserStatus("U");
            else
                gssUserVO.setUserStatus("C");
            sl.sendConfirmEmail(gssUserVO, locale);
            return mapping.findForward("emailexist");
            try
            {
                System.out.println("===========");
                List serviceTypeID = sl.getAllServiceTypeID();
                System.out.println(serviceTypeID.size() + "size");
                List templateUuids = new ArrayList();
                System.out.println("hservices:" + req.getParameter("hservices"));
                String hservices = req.getParameter("hservices");
                if(serviceTypeID != null)
                {
                    String service[] = {
                        hservices
                    };
                    for(int i = 0; i < serviceTypeID.size(); i++)
                        if(service != null && !"".equals(service))
                        {
                            for(int j = 0; j < service.length; j++)
                            {
                                System.out.println("service[j]====" + service[j]);
                                templateUuids.add(service[j]);
                            }                    }            }
                GssUserVO gssUserVO = new GssUserVO();
                gssUserVO.setUserStatus("C");
                gssUserVO.setUserEmail(email);
                gssUserVO.setUserNme(userNme);
                gssUserVO.setCmpyNme(cmpyNme);
                String userUuid = sl.createGuestSubScripe(email, userNme, cmpyNme, "N", templateUuids);
                gssUserVO.setGssUserUuid(userUuid);
                sl.sendConfirmEmail(gssUserVO, locale);
            }
            catch(NamingException e)
            {
                req.setAttribute("exception", e);
                logger.error(e.toString());
                return mapping.findForward("error");
            }
            catch(RemoteException e)
            {
                req.setAttribute("exception", e);
                logger.error(e.toString());
                return mapping.findForward("error");
            }
            catch(CreateException e)
            {
                req.setAttribute("exception", e);
                logger.error(e.toString());
                return mapping.findForward("error");
            }
            return mapping.findForward("result");
        }
      

  4.   

    看这行代码、
    return mapping.findForward("emailexist");
    class文件里面的直接在中间执行,那不是后面的代码都没得执行机会了