关于方法的改造

问题描述

一个类,public class AA{public static String a(){a("a")}public static String a(String p){do something}public static String b(){b("b")}public static String b(String p){do something}}a()和a(p)都是做同一件事。b()和b(p)都是做同一件事。只是参数不同而已。对于以上的写法,个人觉得不是那么的优雅,应该如果改造?

解决方案

public class AA{ //public static String a(){a("a")} public static String a(String ... p){do something} //public static String b(){b("b")} public static String b(String ... p){do something} }楼主可以查一下Java可选参数的用法
解决方案二:
重载和优雅与否没有直接关系,是否优雅取决于方法的语义(即方法要做的事情)是否满足重载的条件。 如果两个方法做的不是同一件事情,那么就是不优雅的,或者说是很坏的写法。如果是同一件事情,做法本身是可以接受。单纯谈一个方法,和优雅本身相距有点远。
解决方案三:
通常这么写,是当一些操作(方法)按照一定参数去做某见事情,但是有时候需要一个默认值,而又不想每次使用默认值的时候都传递这个参数,于是就出现上面这样的写法了...
解决方案四:
按照你现在的写法,不是可以把a()与b()去掉吗?
解决方案五:
这是最优雅的

时间: 2024-10-29 16:21:24

关于方法的改造的相关文章

新操作系统打败Android唯一方法就是改造它?

硅谷网讯 据腾讯科技(乐学)北京时间3月24日消息,据国外媒体报道,在智能手机领域,Android现在已处于主导地位.但是,并非每一家公司都心甘情愿在其智能手机中使用Android,2013年将会出现很多可替代的操作系统.但是,它们要取得成功,还必须依赖Android:通过大量改造Android应用程序来充实自己的应用程序库,从而吸引广大用户. 试以智能手机领域中最新的挑战者黑莓Z10为例.令人印象深刻的是,黑莓10操作系统的应用程序数量已超过了10万,尽管人们仍然质疑其应用程序的质量是否过硬.

将你的Windows XP专业版改造成媒体中心版的方法_应用技巧

在网上看到过很多关于打造"终极版"Windows XP的文章,自己也试了一下,但是总觉得Tablet PC的组件不太好用,所以自己重新实验简化了一下制造终极版的过程,没想到弄出了一个Windows XP Media Center Edition 2005的版本,所以在这里给大家分享一下,别说我抄袭哦!(注:打造"终极版"XP的方法简化掉安装Tablet PC组件的过程,出来的只是一个Windows XP Media Center Edition 2004的版本,至于

检测iOS的APP 性能的一些方法

首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测.但对于复杂情况可能就需要用到子线程监控主线程的方式来了,下面我对这些方法做些介绍: Time Profiler 可以查看多个线程里那些方法费时过多的方法.先将右侧Hide System Libraries打上勾,这样能够过滤信息.然后在Call Tree上会默认按照费时的线程进行排序,单个线程中会也会按照对应的费时方法排序,选择方法后能够通过右侧Heaviest Stack Trace里双击查看到具体的费时操

javascript中自定义函数参数添加默认值实现方法

最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为xvar foo_ = defaultArguments(foo, {x:3});// foo_是一个函数,调用它会返回foo函数的结果,同时x具有默认值3 下面是一个具体的例子: function add(a, b) {return a+b;} // 给add函数的参数b添加默认值3 var add_ = de

PS笔刷应用:利用画笔给天空画上飞翔的候鸟剪影实例教程

三月天气渐暖,候鸟归巢,如果身处城市的你已经见不到百鸟齐飞的壮观画面,何不自己造一张呢? 下面我们通过三种方法,改造同一张照片,一步步深入发掘画笔工具的潜在功能,看看我们经常使用的笔刷能制造出怎样神奇的效果. 效果图: 原图: 原图分析 这张照片是旅行中随手拍下的,由于傍晚的天空十分美丽,我将地平线放在了画面的最下方,给天空留出了非常大的空间,但画面略显空泛; 于是我想到了用之前下载的笔刷预设,为天空画上一些飞翔的候鸟剪影;还我发现了三种不同的方法,可以愈加轻松地完成改造, 下面就让我们领略笔刷

商务部首次明确支持无人商店;重庆邮电大学大数据智能研究院今揭牌成立

大唐网络与北京发行集团共建基于 AI 的无人书店 雷锋网(公众号:雷锋网) AI 掘金志消息,2017年9月22日,大唐网络有限公司与北京发行集团有限责任公司在央企双创成就展会议现场举行战略合作协议签约仪式.双方将依托大唐网络在双创领域的丰富经验和技术优势,结合北京发行集团在出版发行领域的优质资源,共同打造双创体验中心,建设基于人工智能的无人书店,依托"中国云"完善智慧书城平台架构和服务,实现文化与科技的全面融合. 据悉,大唐网络和北京发行集团将一同改造部分现有实体书店,构建一批7x2

《数据结构与算法:Python语言描述》一3.3链接表

3.3链接表 本节考虑线性表的另一种实现技术. 3.3.1线性表的基本需要和链接表 回忆一下线性表的定义,它就是一些元素的序列,维持着元素之间的一种线性关系.实现线性表的基本需要是: 能够找到表中的首元素(无论直接或者间接,这件事通常很容易做到). 从表里的任一元素出发,可以找到它之后的下一个元素. 把表元素保存在连续的存储区里(顺序表),自然能满足这两个需求,其中元素间的顺序关联是隐含的.但是,要满足这两种需求,并不一定需要连续存储元素.显然,对象之间的链接也可以看作一种顺序关联,基于它也可以

[原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)

原文:[原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) .NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇) 前言:上一篇文章讲述了一些实现DAL的理论,本篇主要是DAL实现的的初步的尝试.   本篇的主要议题如下: 1. 设计DAL的基本操作 2. 对基本的操作的进一步的思考 3. 查询对象的一些思考   系列文章链接:  [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之二 草稿设计 [原创].NET 分布式

iOS8 Core Image In Swift:更复杂的滤镜

iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift:人脸检测以及马赛克 iOS8 Core Image In Swift:视频实时滤镜 上面那篇文章主要是Core Image的基础,只是为了说明CIImage.CIFilter.CIContext,以及基础滤镜的简单使用.在上一篇中几乎没有对滤镜进行更复杂的操作,都是直接把inputImage扔给CIFi