在 Java 中声明项目常量的正确方法是什么?

2023-12-27

对于 Java 开发人员来说,这似乎是一个愚蠢的问题,但是,我是 Java 新手,而且我的背景是低级 c 语言。 我曾经包含一个头文件,其中包含与我的项目相关的所有常量。 (通常是#define)。 我现在正在开发一个大型 Java 项目,我需要将一些常量设置为全局常量(它们适合多个类,并在项目的各个部分中使用)

这让我很难决定把它放在哪里,我应该多次声明相同的常量,每个类一个吗?

许多框架使用 XML 文件来声明框架的常量和定义(Hibernate、Log4J 等)。在我的项目中使用这种技术是否明智?如果是这样,如何才能轻松完成?


与许多事情一样,有很多方法可以做到。你应该做的一件事not要做的就是多次声明它们——这简直是愚蠢的。 :P

一切都必须在 Java 的类中,因此:

  1. 选择一个“主”类(假设我有一个名为“FTPServerApp”的项目 - 我可以将它们放在那里)
  2. 创建一个包含所有这些的“Util”类

当您弄清楚将它们放在哪里时,请按以下方式声明它们:

public static final [type] [NAME_IN_ALL_CAPS] = [value];

这会

  • 使它们可用于任何地方的所有项目代码(public)
  • 类的所有实例中仅存在该值的一份副本(static)
  • 它们无法更改(final).

The ALL_CAPS_FOR_CONSTANT_NAMES,用下划线分隔,是Java中的约定。

所以,如果这是在一个名为的类中声明的FTPServerAPP,你有一个常数叫做SERVICE_PORT有可能:

public class FTPServerApp {
  public static final int SERVICE_PORT = 21;

  ...
}

...您可以从任何班级访问它,就像这样...

  FTPServerApp.SERVICE_PORT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中声明项目常量的正确方法是什么? 的相关文章

随机推荐

  • 使用 python 从 mongodb 检索存储的图像

    from pymongo import MongoClient from bson objectid import ObjectId import numpy as np import gridfs import os os path i
  • Java:将 XML 写入数据库,最简单的方法是什么?

    我有大量 XML 文件和它们的 XSD 我想简单地将 then 转换为 POJO 并将它们插入数据库 数据库模式在我的控制之下 因此它可以是我喜欢的任何内容 我查看了很多 api 但想要另一种意见 哪种效果最好 JAXB XMLBeans
  • AngularJS 中的测试:注入函数的引用错误

    我尝试测试下面的代码 describe myService test function describe when I call myService one function beforeEach angular module Target
  • 在as3中使用多点触控同时拖动两个对象

    我试图在 AS3 中使用多点触控同时拖动两个对象 我的目标是让用户将两个对象捏在一起 现在我无法让两者同时移动 有什么想法为什么这不起作用吗 Multitouch inputMode MultitouchInputMode TOUCH PO
  • 如何在正则表达式中匹配非 ASCII(德语、西班牙语等)字母?

    我无法找到或创建仅匹配字母 空格 重音字母以及西班牙语和德语字母的正则表达式 我现在用的是这个 var reg new RegExp a z 我试过了 alpha a zA Z0 9 p L 任何想法 或者javascript引擎支持的正则
  • c++ 将罗马数字转换为小数

    该程序是我刚刚参加的考试的一部分 我必须编写它 我只走到了这一步 却哪儿也去不了 提示如下 编写一个测试函数 toDecimal 将罗马数字 例如 MMLXVII 转换为其十进制数字表示形式 使用 Main 测试该函数 toDecimal
  • Apache Beam:使用 Withtimestamp 分配事件时间时出错

    我有一个无限的 Kafka 流发送具有以下字段的数据 identifier xxx value 10 0 ts 2019 01 16T10 51 26 326242 0000 我使用 kafka 的 apache beam sdk 读取流
  • 电子邮件中的 Button_to 未发布

    请参阅此问题的演变的更新 在我的网站上 每个用户都有一个仪表板 他 她可以在其中单击链接来接受或拒绝请求 根据单击的内容 请求记录将使用相关状态进行修补 为了让用户更方便 我尝试将此仪表板嵌入到发给他们的电子邮件中 这样他们就不必直接访问该
  • 路径查找算法:A* 与跳跃点搜索

    我知道 A 比 Dijkstra 算法更好 因为它考虑了启发式值 但是从 A 和跳跃点搜索来看 哪种算法是在有障碍物的环境中找到最短路径的最有效算法 有何不同 跳跃点搜索是基于图表上的某些条件的改进的 A 因此 如果满足这些条件 主要是统一
  • 在游乐场导入神无

    有没有办法添加 Kanna https github com tid kijyun Kanna https github com tid kijyun Kanna 到 XCode 中的 Playground 我尝试过手动安装并通过 Coco
  • 使用 C# 保护内存中的敏感数据

    我有一个 C 应用程序 它用敏感数据初始化一些变量 它们不是密码 但我们认为它们很敏感 我要保护的变量值都是字符串类型 我想做的是找到一种机制 我知道没有 100 的机制 让我能够保护内存中的变量值 或者至少让攻击者更难读取它们 因此 我可
  • 如何在 php 中使用通过 header() 传递的变量

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在用着header 传递变量use
  • 如何为 Bootstrap 制作响应式(行流体)Mixin

    我可以用以下代码替换此代码 div class row div class span10 div div class span2 div div 有了这个 使其更加语义化 div class article div class main s
  • Visual Studio 2010 Qt 链接问题

    我花了整个周末试图解决这个问题 现在我已经迈出了最后一步 我的目标 让 Visual Studio 2010 和 Qt 4 7 3 一起工作 我从源代码安装了 Qt 指定使用以下配置进行构建 configure exe debug and
  • 使用 SimpleDateFormat 解析奇怪的日期和时间结果

    使用 SimpleDateFormat 解析 ISO8601 日期和时间时遇到一个奇怪的问题 相关代码是 public class DateHelper private static SimpleDateFormat iso8601form
  • Drone.io 在本地构建,无需推送到存储库

    io团队和爱好者 我在本地测试了 Drone io 我喜欢它 有没有办法在本地使用 Drone io 而不推送到存储库 我想在开发人员环境中使用它 这意味着开发人员可以在推送到存储库之前测试他们的代码 可以这样做吗 你可以运行 drone
  • Delphi v10.2.2 升级到 v10.2.3 后 Android 库“将系统文件恢复为默认值”破坏了编译

    将 Delphi 从 v10 2 2 升级到 v10 2 3 后 TBannerAd 横幅在尝试调用 LoadAd 方法时引发异常 在了解到 Tokyo 10 2 3 已更新 Google Play 服务及其库 后 升级到Delphi v1
  • 使用 Bloch 的构建器模式是否会对内存和性能造成影响?

    与仅使用构造函数创建对象相比 内存和性能使用情况如何 这里的用法是创建一个Set or List它可能包含数百万个以上的条目 我担心使用布洛赫的构建器模式的开销 我以前用过它 但从未在这么大的范围内使用过 参考 第 2 项 在面对许多构造函
  • 时间戳的正则表达式

    显然我对正则表达式很糟糕 这对我来说毫无意义 我想要一个匹配时间的表达式 例如01 23 45在一个字符串内 我试过这个 r 0 9 2 2 0 9 2 但它不起作用 我需要能够获取整个时间戳 我尝试过的其他人只找到了大约 2 位数字 恐怕
  • 在 Java 中声明项目常量的正确方法是什么?

    对于 Java 开发人员来说 这似乎是一个愚蠢的问题 但是 我是 Java 新手 而且我的背景是低级 c 语言 我曾经包含一个头文件 其中包含与我的项目相关的所有常量 通常是 define 我现在正在开发一个大型 Java 项目 我需要将一