• java处理方法的多个返回值


    我第一次接触到元组是在java编程思想这本书中,当时我正为方法的多个返回值苦恼。因为我之前处理多个返回值方法的时候,要不建一个新的实体类,要不在接收的方法中建立一个对象,返回值之前给其赋值,要不通过异常机制向上抛出,不管哪一种都很繁琐。但是元组不一样,我们只要建立好元组类 和工具类就可以在任何地方使用,而且简单,明了。

    /***
    * 功能描述:登录
    * @author 程三发 2016-5-26 下午03:21:30
    * @param loginName 用户名
    * @param appType 用户类型 1学生 其他 老师
    * @param loginPass 登录密码
    * @return
    */
    public TwoTuple<Integer,TUser> SignIn(String loginName,Integer appType,String loginPass) {
    if(EmptyUtils.isEmpty(loginName)||EmptyUtils.isEmpty(appType))
    return TupleUtil.tuple(0,null);//参数错误
    TUser user=get(TUser.class,"loginName",loginName);
    if(appType==1){
    if(user.getUserType()!=1)
    return TupleUtil.tuple(-1,null);
    }else{
    if(user.getUserType()==1)
    return TupleUtil.tuple(-1,null);
    }
    if(EmptyUtils.isEmpty(user))
    return TupleUtil.tuple(-1,null);//用户名不存在
    if(!user.getLoginPass().equals(loginPass))
    return TupleUtil.tuple(-2,null);//密码错误
    return TupleUtil.tuple(1,user);
    }

    /***
    * 功能描述:登录
    * @author 程三发 2016-5-4 上午11:43:38
    * @param loginName
    * @param loginPass
    * @return
    */
    public AppCommonModel SignIn(String loginName,String loginPass,Integer appType){
    TwoTuple<Integer,TUser> twoTule= userService.SignIn(loginName,appType,loginPass);
    String msg="";
    switch (twoTule.first) {
    case 0:
    msg="参数不能为空";
    break;
    case -2:
    msg="密码错误";
    break;
    case -1:
    msg="用户名不存在";
    break;

    default:
    return new AppCommonModel(twoTule.first,"登录成功",twoTule.second);
    }
    return new AppCommonModel(AppCommonModel.ERROR,msg,"{}");
    }

    这是我用元组写的一个登陆接口,思路很简单,但是却要返回两个参数,使用元组后处理变得简单很多。

    定义元组

    public class TwoTuple<A, B> {

    public final A first;
    public final B second;

    public TwoTuple(A a, B b) {
    this.first = a;
    this.second = b;
    }

    }

    元组工具类

    public class TupleUtil {
    /***
    * 功能描述:二维元组
    * @author 程三发 2016-5-24 上午09:35:38
    * @param <A>
    * @param <B>
    * @param a
    * @param b
    * @return
    */
    public static <A, B> TwoTuple<A, B> tuple(A a, B b) {
    return new TwoTuple <A, B>(a, b);
    }

    }

    无论定义元组还是元组工具类都很简洁,而且使用它也非常简单。

    这里我要说明一下元组用public final 定义的而且只有构造方法,所以它只能在创建它的时候赋值,而不能在别的给其赋值,所以不用担心它不够安全。

  • 相关阅读:
    [Swoole系列入门教程 5] UDP协议和demo
    [Swoole系列入门教程 3] 心跳检测
    [Swoole系列入门教程 1] CentOs 上的Swoole安装
    PHP CURL 异步测试
    layui 表格点击图片放大
    Laravel 指定日志生成目录
    联系我
    npm config set registry 与 cnpm的区别
    qq邮箱html邮件,图片不显示的问题
    qq邮箱问卷,测试不支持form表单
  • 原文地址:https://www.cnblogs.com/jishuzhaichen/p/5533408.html
Copyright © 2020-2023  润新知