Java常量文件
我正在开发一个 Android 应用程序,而且我对 Java 和 Android 非常陌生。
我想创建一些常量以在某些活动中使用。我在哪里可以定义这些常量?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我正在开发一个 Android 应用程序,而且我对 Java 和 Android 非常陌生。
我想创建一些常量以在某些活动中使用。我在哪里可以定义这些常量?
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
在 java 和大多数面向对象语言中,仅仅定义一个类来保存常量被认为是不好的做法。最好在与它们关联的类中定义常量。通常有一个。例如,
如果确实没有,请随意定义一个单独的类。
编辑:这里的关键是:
It's considered bad practice in java, and most OO languages, to define a class simply to hold constants. It's much better to define the constants in a class they are associated with. Usually there is one. e.g.
If there really isn't one feel free to define a separate class.
EDIT:The key things here are:
通常,您会使用 Constants 类,或者在使用它们的类中定义它们,
然后您可以通过以下方式引用它们:
Normally, you'd use a Constants class, or define them in classes where they are used, a la:
Then you'd refer to them by:
最常见的方法是在类中创建“常量”您是否需要它们:
除了私有之外,还可以将其声明为默认,受保护或公开。尽管它被认为是面向对象的反模式来定义常量,但它是一个特殊的“常量”(< a href="http://en.wikipedia.org/wiki/God_object" rel="noreferrer">God) 类,用于存储整个应用程序的常量。或者,您还可以将配置数据存储在 Java 属性文件 中,这不被视为反模式。
另一种正在迅速流行的选项是使用 依赖注入 ( DI)模式。通常此模式用于依赖对象,但它也可用于将常量值注入到对象中。例如,这可以通过 Google 的轻量级 Guice DI 框架来实现:
在一个特殊的Binder 类,您将把一个值绑定到用@ConfigFilename注释的字符串。这样,您就可以拥有最少的耦合和可以独立测试的类。
The most common way is to create 'constants' in the classes were you need them:
Instead of private it can also be declared default, protected or public. Although it is considered an OO anti pattern to define constants is a special 'constants' (God) class that stores constants for the whole application. Alternatively, you can also store configuration data in a Java properties file, this is not considered an anti-pattern.
Another option, that is rapidly gaining popularity, is the usage of the Dependency Inject (DI) pattern. Often this pattern is used for depend object, but it can also be used to inject constant values into objects. This can for example be implemented with Google's lightweight Guice DI framework:
In a special Binder class you will bind a value to the Strings annotated with @ConfigFilename. This way, you have minimal coupling and classes that can be independently tested.
您可以在 Java 枚举中定义一些常量。
单个 Java 枚举器可以保存关联数据的多个字段。
Oracle 提供了Java 枚举简介
You can define some constants in Java enumerations.
A single Java enumerator may hold multiple fields of associated data.
Oracle provides this introduction to Java enumerations.