ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在java中使用逻辑的setter

2019-07-25 08:02:32  阅读:228  来源: 互联网

标签:java oop setter getter-setter


考虑使用Java中的Message对象来存储一些文本.

public class Message {

    private String text;
    private boolean containsDigit;

    public Message() {
        //constructor
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public boolean isContainsDigit() {
        return containsDigit;
    }

}

这是一个持久化对象.

我在构造函数中设置数据没有问题,但是可以在创建对象之后设置Message的文本字段,并且在设置文本时,containsDigit字段此后也应该是可查询的.
显而易见的方法是在setter中:

public void setText(String text) {
     // presume existence of method to check for digit
     if(text.containsDigit())
         this.containsDigit = true;

     this.text = text;
}

但是,由于在setter方法中有逻辑,这是否会导致任何“最佳实践”警报响起?

有人会建议替代实施吗?

编辑

我应该添加containsDigit字段是必需的,因为该对象是持久的,因此可以随后查询containsDigit字段.
此外,在使用Spring / Hibernate引擎的应用程序中,在重新读取/写入对象时不断调用此setter,因此也想知道它的实用性/效率.

解决方法:

你的情况是使用setter和getter的原因.如果你不允许在setter中使用逻辑,那么你也可以直接访问这些字段!

标签:java,oop,setter,getter-setter
来源: https://codeday.me/bug/20190725/1531140.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有