Java中的集合和封装

面向对象编程的核心租户是封装:不应允许调用者直接访问类的字段。这是新的语言,包括Kotlin,Swift和Ceylon,已经很好地解决了一流的属性。Java没有第一类属性的概念。相反,JavaBeans规范是作为Java执行封装的方法引入的。编写JavaBeans意味着您需要将类的字段设置为私有,仅通过getter和setter方法公开它们。如果你像我一样,你在编写JavaBeans时经常...
摘要由CSDN通过智能技术生成

面向对象编程的核心租户是封装:不应允许调用者直接访问类的字段。这是新的语言,包括Kotlin,Swift和Ceylon,已经很好地解决了一流的属性。

Java没有第一类属性的概念。相反,JavaBeans规范是作为Java执行封装的方法引入的。编写JavaBeans意味着您需要将类的字段设置为私有,仅通过getter和setter方法公开它们。

如果你像我一样,你在编写JavaBeans时经常会感觉到你正在编写一堆很少用于任何实际目的的理论样板。我的大多数JavaBeans都包含私有字段及其相应的getter和setter,它们只能获取和设置这些私有字段。不止一次,我一直试图简单地将这些领域公之于众,并免除了getter / setter的大肆宣传,至少在IDE发出严厉的警告后,我的双腿之间的尾巴,以及JavaBeans标准。

但是,最近,我意识到封装和JavaBean / getter / setter模式在常见场景中非常有用:集合类型字段。怎么会这样?让我们编写一个简单的类:

公共  MyClass {
   
 
    private  List < String >  myStrings ;
 
}

 

我们有一个字段 - 一个字符串列表 - 调用  myStrings,它被封装在中MyClass。现在,我们需要提供访问器方法:

公共  MyClass {
   
 
    private  List < String >  myStrings ;
 
    public  void  setMyStrings(List < String >  s){
   
        这个。myStrings  =  s ;
    }
 
    public  List < String >  getMyStrings(){
   
        归还 这个。myStrings ;
    }
 
}

 

在这里,我们有一个适当封装的 - 如果不是详细的 - 类。所以我们做得很好,对吗?坚持这个想法。

可选课程

考虑在Java 8中引入的Optional类。如果你已经使用Optionals做了很多工作,你可能听说过你应该永远不会null 从返回Optional的方法返回的咒语  。为什么?考虑以下人为的例子:

公共  Foo {
   
 
    私人 字符串 栏 ;
 
    public  可选< String >  getBar(){
   
        return(bar  ==  null)? null:可选。的(巴);
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值