java编码技巧_编码小技巧 让java编程更便捷

经过一段时间的编码,程序员们或多或少会形成自己的编码习惯,好的习惯能帮助自己写出更好的代码,方便程序的维护。抱着侥幸心理,对“可能会出错”的代码没有做“防错性程序设计”,最后都会出错。

下面和大家分享10个java编程的小技巧(习惯)吧。

1. 把字符串常量放在前面

通过把字符串常量放在比较函数equals()比较项的左侧来防止偶然的 NullPointerException(空指针异常)就像这样:

这是毫无疑问的,把一种表达式转换成另一种更好的表达式,并不会失去什么。

2. 不要相信早期的JDK APIs

Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟,你可能曾经遇到过这样一段代码:

00a0e6526555467726d17f1b3fbfc26f.png

“如果抽象路径名表示的不是一个目录,那么这个方法返回null。否则返回一个字符串数组,其中每个字符串表示当前目录下的一个文件或目录。”

最好再加上判空检查,以确保正确:

de3c0fd4d1050bb65092588c91c1f6b7.png

一定要记得判 null检查!

3. 不要相信“-1”

这很偏执,Javadoc中关于 String.indexOf() 的早期描述是这样的:

“字符在字符序列中第一次出现的位置将作为结果[被返回],如果字符不存在则返回-1。”

所以,-1 就可以理所当然被拿来用,对吗?再看看这个:

也许在某个特定场合下他们将会需要另一种 编码值,如果不区分大小写的话,otherString 就会被包含进去,因此不要太相信“-1”。

4. 避免意外的赋值

即使最优秀的程序员也可能犯这种错误:

94858873daed3f748979fac29c6fb9b5.png

如果你的表达式中有常量,将它放在等式左边。这样当你打算再添加一个 = 时,不容易出错。

5. 检查null和长度

不管什么时候你有一个集合、数组或者其他的,确保它存在并且不为空。

6. 所有的方法都用 final 声明

你可以告诉我任何你想要的开闭原则,不过那都是胡说八道。我不相信你(可以正确继承我的类),也不相信我自己(不会意外地继承我的类)。因此除了接口(专门用于继承)都应该是严格的 final。

是的,写成final。如果这样做对你来说没有意义,你也可以通过修改或重写字节码来改变类和方法,或者发送功能请求,但是这样并不好。

7. 所有的变量和参数都用 final 声明

无法确保自己不会无意间重写了某个值,这时可以所有的变量和参数都用final声明。

386d0a6ea447ece0bf6704eaedfb1a4b.png

好吧,其实这一条并不常用。

8. 重载的时候不要相信泛型

这是会发生的!可能你写了一个超好的API,既酷炫又直观,接着就出现了一群用户,他们只是把一切类型生搬硬套进 Object 中 直到编译器停止工作,然后他们突然链接到了错误的方法,然后就变成了你的错。

思考一下这个:

50df29ad4d5ec805aeb0d8df9215f1bb.png

而用户们,他们就像这样:

cadb3f53b6670ebc7683852068ce8af9.png

还有这样的:

36216fd9625df2dbae1af14ae1d54691.png

9. 总是在switch语句里加上default

f9aa652d723b34e7b29931108fe3279d.png

当 value=3 被引入到软件中的时候,default 就能发挥作用,使其正常运行,对 enums 也一样适用。

10. 用大括号隔开 switch 的每一个 case 块

看看下面这个例子:

1d146a04087f1bd066f907245a2d636f.png

在switch语句中,为所有的case都只定义了一个作用域。事实上,这些case不是真正意义上的语句,他们更像是标签,而switch就是指向这些标签的goto语句。这意味着变量final int j 可以被任何case访问,不论我们是否有break。我们可以通过添加简单的花括号为每一个case创建一个新的嵌套的作用域,当然不要忘了在每个 case 的语句块最后加 break。

以上就是小编分享给大家的10个java编程时的小技巧,这些不经意间的行为习惯会给你在编程时带来意想不到的便利哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值