我正在开发一个Android应用程序,而且我是Java和Android的新手。
我想创建一些常量以用于某些活动。我在哪里可以定义这些常量?
感谢。
答案 0 :(得分:48)
在java和大多数OO语言中,仅仅为了保存常量来定义一个类被认为是不好的做法。在与它们相关联的类中定义常量要好得多。通常有一个。 e.g。
interface MyComponent {
/** The default height for a component */
public static final int DEFAULT_HEIGHT = 5;
// other stuff
}
如果真的没有人愿意定义一个单独的类。
编辑:这里的关键是:
答案 1 :(得分:18)
通常,您使用Constants类,或者在使用它们的类中定义它们,la:
class Constants {
public static final int NUM_TRIANGLES = 4;
public static final String SOME_TEXT = "This is a constant";
}
然后你会通过以下方式来引用它们:
String inst = Constants.SOME_TEXT;
答案 2 :(得分:7)
最常见的方法是在您需要的课程中创建“constants”:
class Example {
private static final int FILENAME = "test.txt;
}
也可以声明default,受保护或公开,而不是私有。虽然定义常量被认为是OO anti pattern是一个特殊的'常量'(God)类,它存储整个应用程序的常量。或者,您也可以将配置数据存储在Java properties file中,这不被视为反模式。
另一种迅速普及的选择是使用Dependency Inject(DI)模式。此模式通常用于依赖对象,但它也可用于将常量值注入对象。例如,可以使用Google的轻量级Guice DI框架实现:
class Example {
String filename;
@Inject
public Example(@ConfigFilename String filename) {
this.filename = filename;
}
在特殊的Binder类中,您将值绑定到使用@ConfigFilename注释的字符串。这样,您就可以独立测试最小的耦合和类。
答案 3 :(得分:0)