为什么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类中指定的名称。这
我正在Eclipse中开发一个Java项目。有时当我进行重构时,我想看看从哪些其他类中调用了公共(public)方法。有一种原始方法可以做到这一点,我现在正在使用。我可以注释掉该方法并查看Eclipse中哪些类存在错误。在Eclipse中有没有更好的方法来做到这一点?例如。通过选择方法签名并通过快捷键运行命令? 最佳答案 单击方法名称,然后按Ctrl+Alt+H以调出CallHierarchyView。 关于java-如何使用Java从Eclipse中调用公共(public)方法的位置查
我见过很多人写的代码publicstaticfinalStringmystring=...然后只使用一个值。为什么他们必须这样做?为什么他们必须在使用之前将值初始化为final?更新好的,谢谢大家的回答,我理解这些键的含义(publicstaticfinal)。我不明白的是为什么人们会使用它,即使常量只会在一个地方并且只在同一个类中使用。为什么要宣布它?为什么我们不只使用变量? 最佳答案 final表示变量的值不会改变——也就是说,一个constant,它的值在声明之后就不能被修改。当你想创建一个String时使用publicfin
我最近开始学习Java,发现每个Java类都必须在单独的文件中声明,这很奇怪。我是C#程序员,C#不强制执行任何此类限制。Java为什么要这样做?有没有设计考虑?编辑(基于少数答案):在IDE时代,为什么Java不消除这个限制?这不会破坏任何现有代码(或者会?)。 最佳答案 我刚刚采用了一个C#解决方案并做到了这一点(删除其中包含多个公共(public)类的任何文件)并将它们分解为单独的文件,这让生活变得更加轻松。如果您在一个文件中有多个公共(public)类,您会遇到一些问题:你给这个文件起什么名字?公开课之一?另一个名字?人们对
这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:Whyusegettersandsetters?在你的类中创建访问私有(private)变量的方法而不是公开变量有什么好处吗?例如第二种情况比第一种好吗?//Case1publicclassShoe{publicintsize;}//Case2publicclassShoe{privateintsize;publicintgetSize(){returnsize;}publicvoidsetSize(intsz){size=sz;}} 最佳答案 我有一天在
在Java中,变量应该保持私有(private)以实现更好的封装,但是静态常量呢?这个:publicstaticfinalintFOO=5;结果与此等价:privatestaticfinalintFOO=5;...publicstaticgetFoo(){returnFOO;}但哪种做法更好? 最佳答案 不直接在代码中使用常量的原因之一。假设FOO稍后可能会更改(但仍保持不变),例如publicstaticfinalintFOO=10;。只要没有人愚蠢到直接硬编码值,就不应该破坏任何东西吗?没有。Java编译器会将上面的Foo等常量
这个问题在这里已经有了答案:What'stheuseofprivateconstructorinJava?(11个回答)关闭7年前。我的第一个问题是——classExplain(){publicExplain(){}}构造函数应该总是声明为公共(public)的吗?如果我创建一个private构造函数会怎样。我总是看到构造函数是隐含的public。那么为什么private构造函数有用呢?还是根本没用。因为没有人可以调用它,或者永远不会创建一个对象(因为private构造函数)!这是我的第二个问题。 最佳答案 不,构造函数可以是pub
我需要一个小的容器类来存储一些应该是不可变的字符串。由于String本身是不可变的类型,所以我想到了类似的东西:publicfinalclassImmu{publicfinalStringfoo;publicfinalStringbar;publicImmu(finalStringfoo,finalStringbar){this.foo=foo;this.bar=bar;}}许多人似乎根本反对使用公共(public)字段,而是使用Getter。恕我直言,在这种情况下这只是样板,因为String本身是不可变的。我可能在这个问题上遗漏了其他想法? 最佳答案
什么是更好的做法和原因:通过protected字段或私有(private)字段上的公共(public)getter访问基类变量。(无论如何,getter都会公开) 最佳答案 如果无论如何都会有一个公共(public)setter/getter,你为什么要比绝对必要的更广泛地公开这个领域本身?这意味着它可以立即被子类写入(除非它是final开始的)。我个人喜欢我的所有字段都是私有(private)的:它在API和实现之间提供了更清晰的分离。我认为父类(superclass)和子类之间的关系类似于调用者和被调用者的关系——对底层实现的更