博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java处理方法的多个返回值
阅读量:5008 次
发布时间:2019-06-12

本文共 1989 字,大约阅读时间需要 6 分钟。

我第一次接触到元组是在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 定义的而且只有构造方法,所以它只能在创建它的时候赋值,而不能在别的给其赋值,所以不用担心它不够安全。

转载于:https://www.cnblogs.com/jishuzhaichen/p/5533408.html

你可能感兴趣的文章
织梦dedeCMS数据库结构字段说明-简略说明
查看>>
Cocoa touch(二):UIApplication
查看>>
【数据结构与算法C】利用两个栈S1S2模拟一个队列,用栈的基本操作实线EnQueue,DeQueue,QueueEmpty ...
查看>>
Python-编码和二进制-运算符
查看>>
BZOJ-3211花神游历各国 并查集+树状数组
查看>>
【BZOJ-3667】Rabin_Miller算法 随机化判素数
查看>>
KVC与KVO
查看>>
[HDU5015]233 Matrix
查看>>
慢连接
查看>>
.NET 平台技术官网链接
查看>>
【计算机视觉】SIFT中LoG和DoG比较
查看>>
数学计算公式
查看>>
链表小结
查看>>
【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案
查看>>
php-fpm配置
查看>>
Zabbix-3.4简介及安装配置
查看>>
单相插座程序修改笔记
查看>>
TCPIP详解第1卷1.10标准化过程1.11RFC1.12标准的简单服务1.13互联网1.14实现1.15应用编程接口1.16测试网络...
查看>>
[Project Euler 521]Smallest prime factor 题解
查看>>
6.在idea中链接数据库
查看>>