java-有时不使用一个特定变量的类的处理方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-有时不使用一个特定变量的类的处理方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2200字,纯文字阅读大概需要4分钟。
内容图文
![java-有时不使用一个特定变量的类的处理方法](/upload/InfoBanner/zyjiaocheng/686/deb6013de36d48908f86700f2305342a.jpg)
初学者的问题在这里.我正在编写一个Java程序,该程序在Internet上查询公共API,以检索论坛上讨论的详细信息.数据以JSON形式返回,我将其解析为要在程序中使用的Java对象.
讨论通常包含五个属性,即五个公共变量.但是,响应于有限数量的特定搜索类型,未返回评论数.
有没有一种“最佳”(就面向对象编程而言)的方式来处理这种情况?我的第一次尝试是在下面,在这里我只编写了两个构造函数,一个构造函数为numberOfComments分配了一个值,而另一个没有.
这似乎不是一个很好的解决方案-如果另一个类创建一个DiscussionDetails对象,使用了不填充numberOfComments的构造方法,但是后来又尝试使用numberOfComments字段会发生什么呢?
我认为也许应该将其分为两个类,其中DiscussionDetails没有numberOfComments字段,而DiscussionDetailsS??pecialized是带有附加numberOfComments字段的子类.出于一个单一领域的考虑,这对我来说有点像过大杀伤力.
或者,也许有一个约定,就是使用诸如“ false”或“ -1”之类的特定值来初始化此类变量?
在这种情况下,还有其他更好的方法可供经验丰富的程序员使用吗?
我知道这个例子很简单,但是我用它来尝试尽可能简单地说明我的问题.
/**
* Wrapper for a set of JSON data returned from an API
*/
public class DiscussionDetails
{
public String discussionID;
public String discussionName;
public String discussionURL;
public String submittedDate;
public String numberOfComments;
/**
* Constructor that populates all fields
*/
public DiscussionDetails(String discussionID, String discussionName, String discussionURL, String submittedDate, String numberOfComments)
{
this.discussionID = discussionID;
this.discussionName = discussionName;
this.discussionURL = discussionURL;
this.submittedDate = submittedDate;
this.numberOfComments = numberOfComments;
}
/**
* Constructor method to use when the number of comments is unknown, which happens in certain specific cases
*/
public DiscussionDetails(String discussionID, String discussionName, String discussionURL, String submittedDate)
{
this.discussionID = discussionID;
this.discussionName = discussionName;
this.discussionURL = discussionURL;
this.submittedDate = submittedDate;
}
}
解决方法:
传统上,这已通过“特殊”值(显然没有意义的值,例如:-1的计数)或null(在某种意义上是最特殊的值)解决.
处理此问题的“最佳”方法是IMHO,java.util.Optional:客户端必须在希望使用某个值时检查是否存在该值,而Optional使此值明确,从而避免了客户端遗忘错误的常见原因去检查.
内容总结
以上是互联网集市为您收集整理的java-有时不使用一个特定变量的类的处理方法全部内容,希望文章能够帮你解决java-有时不使用一个特定变量的类的处理方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。