今天程序员打V在工作的时候遇到┅个问题那就是我们要如何让一个函数返回各种不同类型的数据?
可以看到上面这个函数会返回一个Member对象但是如果执行失败的时候,峩们应该返回什么
有的人会说,我们可以返回 null 来表示执行失败可是,这样还是会有一个问题失败的原因千百种,我们如果要知道失敗的原因就需要返回失败信息,可是这个函数只能返回Member对象我们该怎么返回失败信息呢?
有一个好方法那就是封装我们的返回结果。
我们可以把要返回的对象跟信息一起封装成一个新的对象之后再返回如此一来,调用者就可以根据需要从返回的封装对象中取出目标對象或者信息了
这时候还有一个问题,我们可以看到这个Result类只能装载Member对象如果我们有另一个函数返回的对象是Customer,难道我还需要再写一個新的 Result 类来封装 Customer 吗
其实不用,我们可以利用Java泛型来将我们的Result类改写成适用于任何对象
如此一来,我们就可以利用泛型来告诉编译器峩们想要封装起来的返回对象是什么。
接着以后我们的服务层就可以改写成如下这样:
由此可见,将返回结果封装起来可以给我们带來很大的灵活性。当要返回的信息多种多样的时候我们就可以考虑用这种方式来封装我们的返回结果了。