黑马程序员技术交流社区

标题: 求解 [打印本页]

作者: lvwangxiao    时间: 2016-3-15 23:53
标题: 求解
  1. public Object[] validateUser(String username, String password) {
  2.                 //返回结果为一个数组,第一个元素为消息,第二个元素为状态码
  3.                 Object[] result = new Object[2];
  4.                 String message = "";
  5.          // 1代表登录成功,2代表登录失败
  6.                 int loginState = 0;

  7.                 // 校验用户名和密码 信息是否正确
  8.                 for (User user : UserData) {
  9.                         if (user.getUsername().equals(username)
  10.                                         && user.getPassword().equals(password)) {
  11.                                 message = "登录成功!";
  12.                                 loginState = 1;
  13.                                 // 组成结果
  14.                                 result[0] = message;
  15.                                 result[1] = loginState;
  16.                                 return result;
  17.                         }
  18.                 }

  19.                 message = "用户名或者密码错误!";
  20.                 loginState = 2;
  21.                 // 组成结果
  22.                 result[0] = message;
  23.                 result[1] = loginState;
  24.                 return result;
  25. }
复制代码


求解:哪位大神能帮我解释一下,为什么返回的是Object?
作者: dmadboy    时间: 2016-3-16 10:40
不知道你想返回什么??难道你想返回定义的那两个值??首先你定义的object【】可以看作是一种数组类型,所以返回的也是一种数组类型,如果你想看到其结果,那只能在测试程序里用object对象接收一下,再输出到显示器上,也许就是你想要的结果了
作者: ameanboy    时间: 2016-3-16 11:24
因为数组的两个数据类型是不一样的,result[0]是一个String,result[1]是一个int,为了能将他们存入一个数组,必须用他们的共同父类引用来接收,所以用object数组。

在使用的时候,可以用(String)result[0], (int)result[1]来强转类型




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2