什么时候不宜在方法签名上使用Java中的static关键字?如果方法基于某些参数执行功能,并且不需要访问非静态字段,那么您是否不总是希望这些类型的方法都是静态的?
您 可能
不希望它为静态的一个原因是允许它在子类中被覆盖。换句话说,行为可能不取决于对象内的数据,而是取决于对象的确切类型。例如,您可能具有常规的集合类型,其isReadOnly
属性将false
在始终可变的集合,true
始终不可变的集合中返回,并依赖于其他实例变量。
但是,以我的经验来看,这非常罕见-为了清楚起见,通常应明确指定。通常我会做一个不依赖于任何对象状态静态的方法。
问题内容: 我已经查看了它的功能,但是实际上没有人举一个例子说明何时在Java中使用关键字吗?有人真的为此找到了用处吗? 仅将其放在我所有的浮点运算上会有副作用吗? 问题答案: Strictfp确保你从每个平台上的浮点计算中获得完全相同的结果。如果你不使用strictfp,则JVM实现可以自由使用额外的精度(如果可用)。 从JLS: 在FP-strict表达式中,所有中间值都必须是浮点值集或dou
问题内容: 有哪些现实的例子可以理解断言的关键作用? 问题答案: 断言(通过assert关键字)是在Java 1.4中添加的。它们用于验证代码中不变式的正确性。切勿在生产代码中触发它们,并表示存在错误或滥用代码路径。可以在运行时通过命令上的选项将其激活,但默认情况下未启用它们。 一个例子:
问题内容: 我试图找出“最佳做法”,以确定是否要添加自动递增的整数作为表的主键。 假设我有一个表格,其中包含有关化学元素的数据。每个元素的原子序数是唯一的,并且永远不会改变。因此,与其对每列使用一个自动递增的整数,不如仅使用原子序数会更有意义,对吗? 如果我有一本书,那会是真的吗?我应该使用ISBN还是自动递增的整数作为主键?还是包含每个人的SSN的员工表? 问题答案: 关于Stack Overf
问题内容: 什么时候应该使用Apache Commons的Validate.isTrue,什么时候应该只使用’assert’关键字? 问题答案: 可以断言(实际上通常是断言),因此,例如,它们对于验证用户输入没有用。
问题内容: 我怎么能说: 为什么函数调用中不需要括号,而最后一行呢? 问题答案: 是一个功能 调用该函数并产生该函数返回的任何值。 setTimeout的目的是在一段时间后运行代码。你需要的功能只是传递给它(这样的setTimeout可以自称在适当的时候函数),因为如果你将它传递给setTimeout的前调用的函数(用括号),将执行 现在 而不是1秒后,。
问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制