我们的代码使用了很多系统属性,例如’
java.io.tmpdir’,’user.home’,’user.name’等.我们没有为这些任何地方定义任何常量(而且我也不认为)任何其他聪明的事情处理他们,所以他们是纯文字散落在整个代码.
String tempFolderPath = System.getProperty("java.io.tmpdir");
大家如何使用系统属性?
解决方法
我会像这样的任何其他String常量一样将其视为分散在整个代码中并定义一个常量变量.在这种情况下,“java.io.tmpdir”不太可能改变,但你永远都不会知道. (我不是说Sun可能会改变“java.io.tmpdir”的含义,或者它指向什么系统属性,但是您可能会改变主意,了解您需要阅读的系统属性.)
如果您只在一个类中使用特定属性,那么我将在该类中定义常量.
private final String TEMPDIR = "java.io.tmpdir";
如果您在不同的类中使用相同的属性,则可能需要定义一个您自己的静态类来保存最常用的常量.
public final Class Prop { public static final String TEMPDIR = "java.io.tmpdir"; ... }
然后,无处不在,你需要使用该常量只是使用它
System.getProperty(Prop.TEMPDIR);