android开发慎用boolean型变量

        猴子之前比较喜欢使用boolean型变量,感觉用起来还是比较方便的。直到膝盖中了一箭。简单说一说boolean型变量的弊端。

        首先,环境不兼容。猴子是搞android开发的,昨天加班的时候,后台的哥们把我拉到他们项目组里面去,这样方便我查看请求参数,当看到一个String类型变量的注释上说这个变量有两种取值“true”和“false”,我问他们:“这是什么鬼?”,答曰:“ios的boolean型变量不是true和false”。

       其次,扩展性问题。boolean型变量只有两种取值,这就使得这个变量的扩展型受到极大的约束。以前做一个彩票的项目的时候,在详情里面有一个中奖状态的信息。我就和后台商量,这个给我返回一个boolean型变量吧。后台的哥们还挺乖。后来,我们产品经理大脑语言中枢神经突然抽搐,让我们把这个中奖状态改成,未开奖,未中奖,以中奖三种状态。boolean型变量的极差的的扩展性的劣势直接显现了出来。这个修改可是一个大工程。

更让人恶心的一个问题是,如果你在javabean中,定义一个boolean 型变量,isxxx的话,自动生成的get、set方法,会生成一个返回值为 boolean 类型的isxxx()方法,这个方法相当于其他类型的get方法,但是由于isxxx()这个方法,会自动生成一个只读的xxx字段,猴子的网络请求中,服务端是对所有字段做强校验的,接口中没有定义xxx字段,结果请求失败了。

       最后,sqlite数据库也不支持boolean型变量,存储boolean型变量时需要做一个转换。这对抽象编程来说会增加其复杂性,当然无所不能的程序猴子是可以解决这个问题的,但是本猴子还是认为多一事不如少一事,尤其是前期开发时间比较紧张的时候。

       effectivejava推荐,遇到boolean型变量的时候最好使用枚举代替。

          

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页