我正在检查StringTokenizer.java类,我想到了几个问题。我注意到其他类将使用的公共(public)方法调用了一些完成所有工作的私有(private)方法。现在,我知道OOD的原则之一是尽可能多地私有(private)化并隐藏所有实现细节。我不确定我是否完全理解这背后的逻辑。我了解将字段设为私有(private)以防止在其中存储无效值非常重要(这只是众多原因之一)。但是,当涉及到私有(private)方法时,我不确定它们为什么如此重要。例如,在StringTokenizer类的情况下,我们不能把所有的实现代码都放在公共(public)方法中吗?由于这些方法的API(即调用
给定一组类,找到最近的公共(public)父类(superclass)的最佳方法是什么?例如,给定以下内容:interfaceA{}interfaceB{}interfaceABextendsA,B{}interfaceC{}classAImplimplementsA{}classABImplimplementsAB{}classABImpl2implementsA,B{}classBCImplimplementsB,C{}我希望以下内容(并非详尽无遗):commonSuperclass(A,AImpl)==AcommonSuperclass(A,B,C)==Objectornull,
我正在尝试编写程序,但出现此编译器错误:Main.java:1:error:classWeatherArrayispublic,shouldbedeclaredinafilenamedWeatherArray.javapublicclassWeatherArray{^1error我检查了我的文件名,我的公共(public)类与我的.java文件相同。我该如何解决这个问题?这是我的代码:publicclassWeatherArray{publicstaticvoidmain(String[]args){//...}} 最佳答案 公共(
我正在阅读这篇文章WhywouldastaticnestedinterfacebeusedinJava?特别是第一个答案。在那个答案中,在接口(interface)字段上使用“public”或“publicfinal”这些词是多余的。我的问题是:为什么?我为什么要删除它们?如果我有这样的事情:publicinterfaceInt1{publicvoidadd();voidremove();}这是否意味着我希望add方法由任何类实现,而remove方法只能由我的同一个包的类实现? 最佳答案 Are“public”and“publicf
我注意到,如果我不在类之前编写public,它的工作方式与publicclass相同。我不明白为什么会这样?当我没有将类声明为public、private或protected时,它应该会显示错误。但它工作正常。是什么原因? 最佳答案 Ihavenoticedthatifdon'twritepublicbeforeaclassitsworkssameaslikeapublicclass.不,它没有。除非它是公共(public)的,否则不在同一个包中的其他代码将看不到该类。默认的可访问性(不能明确指定)是类(或其他成员)仅对同一包中的其
为什么Optional有of()和ofNullable()之类的方法,而不是公共(public)构造函数? 最佳答案 来自JoshuaBloch有效的Java,第2章。创建和销毁元素,1件:Considerstaticfactorymethodsinsteadofconstructors为什么?Oneadvantageofstaticfactorymethodsisthat,unlikeconstructors,theyhavenames.使用静态工厂方法,我们可以在方法定义中指定一些实例化行为。这使得API更易于使用,并且我们可以
我正在尝试编码实现公共(public)接口(interface)的对象列表。涉及3个类和1个接口(interface):Community类(有一个方法:ListgetPeople();)Person接口(interface)(只有一种方法:StringgetName();)Girl类(实现Person)Boy类(实现Person)参见下面的代码。我想要一个看起来像这样的XML:JaneJohnJaneJohn或者可能:JaneJohn到目前为止,我得到的是这样的:JaneJohnJaneJohn我意识到我可以将元素更改为其他内容,但我希望元素名称是在Girl或Boy类中指定的名称。这
在处理mongodb时,我应该什么时候在查询中使用{safe:true}?现在我使用“安全”选项来检查我的查询是否已成功插入或更新。但是,我觉得这可能是过度杀戮。我是否应该假设99%的时间,我的查询(假设它们被正确编写)将被插入/更新,而不必担心检查它们是否成功输入?想法? 最佳答案 假设当您说查询时,您实际上是指写入/插入(您的问题的措辞让我想到了这一点),那么可以使用WriteConcern(安全、无、fsync等)来获得更快的速度和更低的安全性是可以接受的,必要时可以降低速度并提高安全性。举个例子,一个假设的Facebook风
在处理mongodb时,我应该什么时候在查询中使用{safe:true}?现在我使用“安全”选项来检查我的查询是否已成功插入或更新。但是,我觉得这可能是过度杀戮。我是否应该假设99%的时间,我的查询(假设它们被正确编写)将被插入/更新,而不必担心检查它们是否成功输入?想法? 最佳答案 假设当您说查询时,您实际上是指写入/插入(您的问题的措辞让我想到了这一点),那么可以使用WriteConcern(安全、无、fsync等)来获得更快的速度和更低的安全性是可以接受的,必要时可以降低速度并提高安全性。举个例子,一个假设的Facebook风
我正在Eclipse中开发一个Java项目。有时当我进行重构时,我想看看从哪些其他类中调用了公共(public)方法。有一种原始方法可以做到这一点,我现在正在使用。我可以注释掉该方法并查看Eclipse中哪些类存在错误。在Eclipse中有没有更好的方法来做到这一点?例如。通过选择方法签名并通过快捷键运行命令? 最佳答案 单击方法名称,然后按Ctrl+Alt+H以调出CallHierarchyView。 关于java-如何使用Java从Eclipse中调用公共(public)方法的位置查