服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java奇淫技巧之如何写最少的代码

Java奇淫技巧之如何写最少的代码

2020-12-15 01:22是Kerwin啊柯小贤 Java教程

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

Java奇淫技巧之如何写最少的代码

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

前言

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

Java:我想返回多个返回值

秀一下Go的多返回值:

package main 

import "fmt" 

 

// 返回 X + Y 和 X * Y 

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

    return X + Y, X * Y 

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

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

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

  • 代码可复用
  • 语义要清晰
  • 安全

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

public class MultipleTwoReturn<A, B> { 

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

    private final A first

 

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

    private final B second

 

    public MultipleTwoReturn(A first, B second) { 

        this.first = first

        this.second = second

    } 

 

    // 省略Get方法 

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

public class MultipleThreeReturn<A, B, C> extends MultipleTwoReturn<A, B> { 

 

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

    private final C third; 

 

    public MultipleThreeReturn(A first, B second, C third) { 

        super(firstsecond); 

        this.third = third; 

    } 

测试类:

public class MultipleApp { 

 

    public static void main(String[] args) { 

        MultipleTwoReturn<Integer, String> returnTest = MultipleApp.getReturnTest(); 

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

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

    } 

 

    private static MultipleTwoReturn<Integer, String> getReturnTest() { 

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

        return demo; 

    } 

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

泛型:我想new一个对象

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

延伸 · 阅读

精彩推荐