当前位置: 首页 > 知识库问答 >
问题:

编译警告“静态方法声明为final”的原因是什么?[副本]

淳于凯
2023-03-14

文件从Spring yml文件中获取值。

专用字符串文件;(xxx-12345.txt)

public String getBatchNo() {
    return parseBatchNo(file);
}

public static final String parseBatchNo(String file) {
    return file.substring((file.lastIndexOf("-") + 1), (file.length() - 4));
}

共有1个答案

萧琛
2023-03-14

静态方法不受重写的限制。

final关键字隐藏该方法。有关更多详细信息,请参阅注释中的链接。

请注意,您不应该依赖该行为,尽管语言允许这样做。应该始终以 . 的形式调用静态方法

 类似资料:
  • 我最近在Eclipse中查看了我的警告,发现了这样一个警告: 如果方法可以声明为静态,它将给出编译器警告。 [编辑]Eclipse帮助中的确切引用,强调私有和最终: 如果启用,编译器将为私有或最终的方法以及仅引用静态成员的方法发出错误或警告。 是的。我知道我可以关掉它,但我想知道打开它的原因? 为什么将所有可能的方法声明为静态方法是一件好事呢? 这会给性能带来什么好处吗?(在移动域中) 指出一个方

  • 问题内容: 如果该方法可以声明为静态方法,则会向编译器发出警告。 [edit] Eclipse帮助中的确切引号,重点是私有和最终的: 启用后,编译器将为私有或最终方法(仅引用静态成员)发出错误或警告。 是的,我知道我可以将其关闭,但是我想知道打开它的原因吗? 为什么将每个方法都声明为静态是一件好事? 这会给性能带来任何好处吗?(在移动域中) 指出一种方法是静态的,我想表明您不使用任何实例变量,因此

  • 初学者最常见的错误是,您试图“静态”地使用类属性,而不创建该类的实例。它会给您留下前面提到的错误消息: 您可以将非静态方法设置为静态方法,也可以将该类的实例设置为使用其属性。 为什么?我不是要求解决办法。如果知道背后的原因是什么,我将不胜感激。最核心的原因!

  • 根据我的理解,类被声明为final,以防止它被扩展/继承。因此,我认为在这方面可能会有安全性,也可能会有一些性能提升。 但这背后是否有一个非常具体的设计决策?比如说:实现某种设计模式?我确实在这里绕了一个类似的线!但答案并不是我想要的

  • 问题内容: Java编译器警告: 为什么?如何解决? 问题答案: 这在这里很好解释: serialVersionUID是Serializable类的通用版本标识符。 反序列化使用此数字来确保已加载的类与序列化的对象完全对应。如果找不到匹配项,则抛出InvalidClassException。 您通过添加来修复错误 上课。 进一步阅读: java.io.Serializable 旁注: 如果您使用的

  • 这里已经阐明了和之间的区别。 但我的问题是,为什么我们要使用关键字?从生成的Java代码角度来看没有区别。 静态编程语言代码: 生成: