JAVA代码如何用继承提取出重复代码,优化代码冗余

选中的代码 重复比较多 怎么提取出来
2025-05-21 10:31:14
推荐回答(5个)
回答(1):

重新写个方法,把你选中的放进去,用到的时候调用下就好,重写写的方法最好是static修饰的,这样就能直接用类名调用了,比如
public class A{
public static void b(){
//这里放你那些代码
}
}

以后要用的话就是A.b()就可以用了

回答(2):

    public static ModelAndView util(String first,String second,String usertype){
     if(!first.equalsIgnoreCase(usertype)
     && !second.equalsIgnoreCase(usertype)){
     return new ModelAndView("erros/403","resolveView","/"+first+"Login.html");
     }
return null;
    }

因为根本不知道你这些代码是否经常使用,如果你就使用了一次,为什么要提取呢?而且如果这些地方都是动态的,有时候可能不提取反而更好,因为可能需要使用反射,我不在你们项目组,所以不知道你们的具体情况,所以无法做更详细的解答

    public static ModelAndView util(String first,String second,String usertype){
     return util(first,second,usertype,"erros/403","resolveView","Login.html");
    }
    public static ModelAndView util(String first,String second,String usertype,String error,String resolveView,String loginhtml){
     if(!first.equalsIgnoreCase(usertype)
     && !second.equalsIgnoreCase(usertype)){
     return new ModelAndView(error,resolveView,"/"+first+loginhtml);
     }
return null;
    }

回答(3):

 public class ImportParticipators{
 @RequestMapping(value = "/importParticipators" , method = RequestMethod.GET)
 public ModelAndView showImportParticipatorsView(HttpSession session){
  String userType = (String) session.getAttribute("usertype");
  if(isUserType(userType)){
   return new ModelAndView("errors/403","","")
  }
 }
 private Boolean isUserType(String userType){
  if(!"superuser".equalsIgnoreCase(userType)&&!"manager".equalsIgnoreCase(usertype)){
   return true
  }else{
   return false
  }
 }
}

 下次最好吧代码粘出来 别搞图片  打着太费劲了

回答(4):

定义一个BaseSpringController
public class BaseSpringController {

public ModelAndView get403Error(String usertype) {
if(!"superuser".equalsIgnoreCase(usertype) && !"manager".equalsIgnoreCase(usertype)) {
return new ModelAndView("errors/403","reso")...
}
}
}

public class ImportParticipators extends BaseSpringController {
//直接调用就可以了
return get403Error(xx);
}

回答(5):

把它封装成一个静态方法, 把字符串传入即可, 返回类型为通用类型即可,需要的地方 直接 类名+方法名 即可