java 设计方法_java 中如何处理设计一个方法

java 中我们很常见的设计 API 的例子是对一个对象进行增, 删, 查,改.

比如

Object addObject(Object obj);

Object delObject(Object obj);

Object modifyObject(Object obj);

成功返回 obj, 不成功(参数不合法,或已经存在, 或不存在)抛出异常

还是

int addObject(Object obj);

int delObject(Object obj);

int modifyObject(Object obj);

如果成功返回 0, 不成功, 返回其他数字

还是

boolean addObject(Object obj);

boolean delObject(Object obj);

boolean modifyObject(Object obj);

如果成功返回 0, 不成功(参数不合法,或已经存在, 或不存在), 抛出异常

感谢各位热心回答, 我已经决定采用第一种方式了.原因: 1. 性能不是那么的关键; 2

绝大多数我们认为参数是正确的.排除异常较返回 Errorcode 让代码更加简洁.

补充: 以下是从 这里 找到的一个回答, 基本决定采用第一中方式, 这或许是 java 语言本

身的特点, 如果是 c 或 cpp 我更倾向于第二种方式.

Exceptions impose quite an overhead on the runtime performance, but makes reasoning about the program flow drastically easier. This reduces faulty programming (semantic errors), especially as it forces you to deal with them - they 'fail securely' by terminating the program if they are ignored. They are ideal for 'situations which are not supposed to happen'. Also they can transport metadata like a stacktrace.

Error codes, on the other hand, are light-weight, fast, but forces the method caller to explicitely check them. Failure to do so often results in program flaws, which can range from silent data corruption, security holes, to nice fireworks if your program happens to be running inside a space rocket.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python获取mac窗口坐标_[代码全屏查看]-Python3根据IP地址获取MAC地址

[1].[代码] [Python]代码#!/usr/bin/env python3# -*- coding: utf-8 -*-import osimport platformimport reclass IP2MAC:def __init__(self):self.patt_mac re.compile(([a-f0-9]{2}[-:]){5}[a-f0-9]{2}, re.I)def getMac(self, ip):sysstr platform.system()if sysstr Wi…

PLECS软件学习使用(一)简单的RLC电路搭建

PLECS软件学习使用(一)简单的RLC电路搭建 1相关操作总结: 旋转:CtrlR 翻转:CtrlF 从连线中引出线:Ctrl鼠标左键 设置元件参数:双击元件,进行设置,若要显示参数&#xff0…

《自然》公布年度十大杰出论文

来源:科技日报 英国《自然》杂志网站日前公布了2019年十大杰出论文,接近室温的超导体、精确编辑基因技术、海王星新卫星等纷纷入选。其中,中国研究占到两席,分别是来自复旦大学的亨廷顿舞蹈症新疗法,与中科院上海有机化…

python 加密方法总结

MD5 def md5(str):import hashlibm hashlib.md5()m.update(str)return m.hexdigest() base64 import base64s 我是字符串a base64.b64encode(s)print a print base64.b64decode(a)输出结果: ztLKx9fWt/u0rg 我是字符串 转载于:https://www.cnblogs.com/superxuez…

中国电子信息工程科技发展十大趋势(2019)发布

来源:新浪科技17日,中国工程院信息与电子学部、中国信息与电子工程科技发展战略研究中心在中国工程院召开发布会,发布“中国电子信息工程科技发展十大趋势(2019)”。中国工程院副院长陈左宁院士表示,中国工…

如何用python画转盘_如何用ppt做一个抽奖转盘 看完你学会了么

现在抽奖转盘是很常见的,有时候公司办活动也会有抽奖活动,如果让自己做一个抽奖转盘,应该怎么做?操作方法01打开ppt,把幻灯片版式设置成空白的,然后点击插入,选择图表。02选择饼图,用…

java实现对大文件切割下载_Java实现大文件的切割与合并操作示例

Java实现大文件的切割与合并操作示例发布时间:2020-09-27 02:25:08来源:脚本之家阅读:99作者:HiBoyljw本文实例讲述了Java实现大文件的切割与合并操作。分享给大家供大家参考,具体如下:这里实现对大文件的切…

Android junit单元测试

1.首先要把下面配置好(注释的地方 Android studio 无需配置),targetPackage项目的包名 2.创建Android项目会自动生成test包,只能在test包下使用junit测试 3.在方法的前面加上Test就可以使用junit了 4.解释一下: assert…

21世纪20年代改变世界的十大趋势

来源:美国银行美国银行发布了新报告“21世纪20年代改变世界的十大趋势”。全球化高峰:世界范围内劳力、货物和资本自由流动将终结。在这种趋势下,赢家是本地市场和实物资产,而输家则是全球市场。衰退:更多的FMS投资者认…

多个if用什么设计模式_抽丝剥茧——单例设计模式

单例设计模式兄弟们好,今天是最后一个设计模式了,也是我们最熟悉的单例设计模式,可以说这个设计模式是我们最先接触到的设计模式了。想当年学习JavaSE的时候,老师聊到一个「饿汉式和懒汉式」,我还纠结了半天&#xff0…

volatile的适用场合

1对变量的写入操作不依赖其当前值 不满足&#xff1a;number/count count*5等 满足Boolean变量、记录温度变化的变量等 2.该变量没有包含在具有其他变量的不变式中 不满足&#xff1a;不变式low<up 转载于:https://www.cnblogs.com/CCCrunner/p/6444550.html

计算机密码行业专题研究:网络安全最大弹性领域

来源&#xff1a;未来智库报告摘要&#xff1a;1、传统市场:政策驱动&#xff0c;预计传统密码增长中枢提升至30%密码是网络安全刚需&#xff0c;密码法2020年1月1日实施。政策驱动客户下沉&#xff0c;行业中期增速从10%提升至30%。2、新兴市场:物联网安全的基石&#xff0c;未…

python3.7和2.7_为两个python版本(2.7和3.7)Windows 10安装pip

Eylo堆垛机我已经在python3.7中成功地安装了pip&#xff0c;但是似乎无法为python2.7安装它。在我尝试过通过下载get来实现这一点-点对点并在安装它的目录中运行cmd按住Shift键&#xff0c;然后单击“打开命令窗口”python get-pip.py然后继续更新pip。。。它提供了这个Collect…

人工智能军事对抗技术发展趋势

来源&#xff1a;战略前沿技术人工智能军事对抗技术人工智能&#xff08;AI&#xff09;作为新一代科技革命的典型代表性技术&#xff0c;目前已在世界各国的工业、金融、娱乐和公共安全等领域广泛应用&#xff0c;而其在军事领域的应用也正在快速发展。随着人工智能技术与军事…

java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。

求助&#xff0c;一个计算器的括号功能怎么写啊。import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class computer1 extends JFrame implements ActionListener{Double r1,r2,total,c1,c2;int i,j,j110,j27,c;JButton[] Bu…

mysql递归层次查询

mysql递归层次查询 最近在做一个从oracle数据库到mysql数据库的移植&#xff0c;遇到一个这样的问题 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi&#xff0c;在MySQL的目前版本中还没有对应的函…

windows打开的winform当前焦点 是否是hwnd_推介几款 windows 下非常好用的工具

在下工具控一枚&#xff0c;平时会留意收集各种各样给我们生活生产带来便捷的工具&#xff0c;毕竟人生苦短&#xff1b;下面主要介绍一些我在 Windows 系统上发现的一些好用的工具&#xff0c;并且会一笔带过主要优点特点&#xff0c;具体详细用法可以搜一下&#xff0c;相关帖…

借力5G,云VR将推动VR产业迎“第二春”

来源&#xff1a;VR每日必看在近期举办的第八届全球物联网峰会上&#xff0c;作为中国电信5G商用产品的集约运营单位&#xff0c;号百控股在会展区域设置了天翼云VR产品专区&#xff0c;演示了韩国LG U独家授权内容&#xff0c;以及自制VR视频&#xff0c;引入关注。VR云化将实…

java强制删文件夹_java删除文件或文件夹的方法

java删除文件或文件夹的方法java里面删除文件夹时候&#xff0c;如果该文件夹下有内容&#xff0c;即其下包含的有文件或文件夹&#xff0c;当你执行java.io.File.delete(File file)方法时候&#xff0c;不能成功删除&#xff0c;那么如果我们想成功删除&#xff0c;该怎么办的…

python语言设计学习方向_学好Python开发就业方向有哪些?

原标题&#xff1a;学好Python开发就业方向有哪些&#xff1f;近年来&#xff0c;Python市场火爆&#xff0c;从业人员薪资不断增加&#xff0c;选择学Python的人也在逐年增多。然而&#xff0c;很多人学Python只是盲目的跟随潮流&#xff0c;对于Python却不甚了解&#xff0c;…