简体   繁体   English

如何将两个对象字段作为同一类中的单独方法进行比较

[英]how can I compare two object fields as a separate method within the same class

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

if( action.equals("LOGIN")) {

...
}

 else if (action.equals("EDIT"))
    {                                                               /* get updated information for updating user */

            int userId = Integer.parseInt(request.getParameter("userId"));
            userObj = service.getUserById(userId);
            UserDetails user = getUserInfoFromRequest(request);
            forward= LIST_USER;

            if(!(userObj.getFirstName()).equals(user.getFirstName())) {
                 inbox.setMessage("Change of First Name from " +userObj.getFirstName() +" to " +user.getFirstName() +" for user " +userObj.getFirstName());
                 service.addToInbox(user.getUserId(), inbox.getMessage());
            }
            if(!(userObj.getLastName()).equals(user.getLastName())) {
                inbox.setMessage("Change of Last Name from " +userObj.getLastName() +" to " +user.getLastName() +" for user " +userObj.getFirstName());
                service.addToInbox(user.getUserId(), inbox.getMessage());
            }
            if(!(userObj.getEmail()).equals(user.getEmail())) {
                inbox.setMessage("Change of Email from " +userObj.getEmail() +" to " +user.getEmail() +" for user " +userObj.getFirstName());
                service.addToInbox(user.getUserId(), inbox.getMessage());
            }
            if(!(userObj.getUserName()).equals(user.getUserName())) {
                inbox.setMessage("Change of Username from " +userObj.getUserName() +" to " +user.getUserName() +" for user " +userObj.getFirstName());
                service.addToInbox(user.getUserId(), inbox.getMessage());
            }
            if(!(userObj.getPassword()).equals(user.getPassword())) {
                inbox.setMessage("Change of Password from " +userObj.getPassword() +" to " +user.getPassword() +" for user " +userObj.getFirstName());
                service.addToInbox(user.getUserId(), inbox.getMessage());
            }
            if((userObj.getDeptId()) != (user.getDeptId())) {
                inbox.setMessage("Change of Department from " +userObj.getDeptName() +" for user " +userObj.getFirstName());
                service.addToInbox(user.getUserId(), inbox.getMessage());
            }

            service.updateUser(user);
            String userName = request.getParameter("username");
            user = service.getUserByUserName(userName); 
            if (user!=null) {
                users =  new ArrayList<>();
                users.add(user);
            }
            request.setAttribute("users", users);
            RequestDispatcher view = request.getRequestDispatcher(forward);
            view.forward(request, response);
        }       
public class UserDetails {

    String password;
    String userName;

    public boolean compareTo(UserDetails o) {
        if (!this.password.equals(o.password)) return false;
        if (!this.userName.equals(o.userName)) return false;

        return true;
    }
}

Did it by overriding the method通过覆盖方法做到了

private class Compare extends UserController {私有类比较扩展 UserController {

    private static final long serialVersionUID = 1L;

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         Service service = new Service(); 
            UserDetails userObj = new UserDetails();
            String action = request.getParameter("action");             
            Inbox inbox = new Inbox();

         if (action.equals("EDIT")) {   
             System.out.println("Edit in extended class");
                int userId = Integer.parseInt(request.getParameter("userId"));
                userObj = service.getUserById(userId);
                UserDetails user = getUserInfoFromRequest(request);

                if(!(userObj.getFirstName()).equals(user.getFirstName())) {
                     inbox.setMessage("Change of First Name from " +userObj.getFirstName() +" to " +user.getFirstName() +" for user " +userObj.getFirstName());
                     service.addToInbox(user.getUserId(), inbox.getMessage());
                }
                if(!(userObj.getLastName()).equals(user.getLastName())) {
                    inbox.setMessage("Change of Last Name from " +userObj.getLastName() +" to " +user.getLastName() +" for user " +userObj.getFirstName());
                    service.addToInbox(user.getUserId(), inbox.getMessage());
                }
                if(!(userObj.getEmail()).equals(user.getEmail())) {
                    inbox.setMessage("Change of Email from " +userObj.getEmail() +" to " +user.getEmail() +" for user " +userObj.getFirstName());
                    service.addToInbox(user.getUserId(), inbox.getMessage());
                }
                if(!(userObj.getUserName()).equals(user.getUserName())) {
                    inbox.setMessage("Change of Username from " +userObj.getUserName() +" to " +user.getUserName() +" for user " +userObj.getFirstName());
                    service.addToInbox(user.getUserId(), inbox.getMessage());
                }
                if(!(userObj.getPassword()).equals(user.getPassword())) {
                    inbox.setMessage("Change of Password from " +userObj.getPassword() +" to " +user.getPassword() +" for user " +userObj.getFirstName());
                    service.addToInbox(user.getUserId(), inbox.getMessage());
                }
                if((userObj.getDeptId()) != (user.getDeptId())) {
                    inbox.setMessage("Change of Department from " +userObj.getDeptName() +" for user " +userObj.getFirstName());
                    service.addToInbox(user.getUserId(), inbox.getMessage());
                } 

         }
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何比较任何对象的两个实例并获取“脏”字段 - How can I compare two instances of any object and get “dirty” fields 如何在同一个类(Java)中的另一个方法中引用一个方法中的变量? - How can I reference a variable within a method in another method in the same class (Java)? 如何比较方法中的两个实例变量? - How to compare two instance variables within a method? 如何有效地比较同一类的两个对象并检查哪些是不同的字段? - How to efficiently compare two objects of same Class and check which are the fields that differ? 如何使用用户输入比较列表中的两种不同类型? - How to compare two separate types within a list using user input? 如何将多维数组添加到同一个 class 中的方法中? - How can I put the additon of multidimensional array into a method within the same class? 我可以将对象存储在同一类的arraylist中吗? - Can I store an object in an arraylist within the same class? 我如何在同一个 class 的不同方法中使用私有 static 方法(对象的扩展)的返回值? (爪哇) - How can i use the return value of a private static method (extension of object) in a different method in that same class? (java) 我如何在SonarQube中比较同一项目的两个任意版本 - How can i compare two arbitrary versions of same project in SonarQube 如何比较同一阵列中的两个元素? - How can I compare two elements in a same array?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM