java写y=xx,Java奇淫技巧之如何写最少的代码

0125142008-0.jpg

原标题:「奇淫技巧」如何写最少的代码

前言

由于性格原因,笔者很难沉下心来进行严肃的系统学习,总是喜欢折腾一些奇淫技巧,非常喜欢代码设计,扣代码的细节,所以本次分享一下我所知道的如何写最少的代码的小技巧。

Java:我想返回多个返回值

秀一下Go的多返回值:

package main

import "fmt"

// 返回 X + Y 和 X * Y

func Computer(X, Y int) (int,int) {

returnX + Y, X * Y

}

众所周知,Java仅支持单一返回值,一般情况下如果需要返回多个对象,我们会根据代码语义选择容器或者新建一个新的类,把我们需要的数据包起来。

这样做有没有问题?当然没有问题,但是瑕疵就在于:可能会产生没啥语义但又不得不存在的中间类,我个人非常讨论该类代码,那么该如何解决这种问题呢?

首先需要认识到,解决方案必须满足几个要求:

代码可复用

语义要清晰

安全

既然如此,我们可以采用泛型来满足复用、语义清晰的要求,用中间类来满足代码安全性的要求,代码如下:

publicclass MultipleTwoReturn {

/** 第一个返回值 **/

private final A first;

/** 第二个返回值 **/

private final B second;

publicMultipleTwoReturn(Afirst, Bsecond) {

this.first=first;

this.second=second;

}

// 省略Get方法

}

同时,我们可以依赖于继承,让该工具类拓展更多的参数:

publicclass MultipleThreeReturn extends MultipleTwoReturn {

/** 第三个返回值 **/

private final C third;

publicMultipleThreeReturn(Afirst, Bsecond, C third) {

super(first,second);

this.third = third;

}

}

测试类:

publicclass MultipleApp {

publicstaticvoid main(String[] args) {

MultipleTwoReturn returnTest = MultipleApp.getReturnTest();

System.out.println(returnTest.getFirst());

System.out.println(returnTest.getSecond());

}

private staticMultipleTwoReturn getReturnTest() {

MultipleTwoReturn demo = new MultipleTwoReturn<>(0,"Kerwin Demo.");

returndemo;

}

}

本质还是普通对象,但是加上泛型后威力剧增!由于在方法定义时就强制了泛型约束,语义非常清晰,同时可以完全杜绝上述的无语义中间类,当然一些必要的,有业务含义的组装类,不建议使用这种方式。

泛型:我想new一个对象

大家在学Java泛型之初有没有这种想法?我想利用作为泛型约束,却需要new一个T,但是Java它new不出来啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值