Java动态给类中配置常量赋值的三种方法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java动态给类中配置常量赋值的三种方法

Java动态给类中配置常量赋值的三种方法

 2014/12/1 18:30:04  JavaLuSir  程序员俱乐部  我要评论(0)
  • 摘要:转载自http://blog.csdn.net/yyaf2013/article/details/17356813当我们需要给Configuration类中的CONFIG常量第一次使用时动态指定一个值时,而此时我们又不想去修改源代码,那我们有三种方法去实现这种需求。第一种:使用一个static静态代码块来指定,然后在静态代码块中,我们去动态读取外部的一个Properties文件的值。(最推荐)importjava.util.Properties
  • 标签:
转载自http://blog.csdn.net/yyaf2013/article/details/17356813

当我们需要给Configuration类中的CONFIG常量第一次使用时动态指定一个值时,而此时我们又不想去修改源代码,那我们有三种方法去实现这种需求。

第一种:使用一个static静态代码块来指定,然后在静态代码块中,我们去动态读取外部的一个Properties文件的值。(最推荐)

class="java">
import java.util.Properties;  
  
  
/** 
 * 第一种实现方法 
 * @author William 
 * 
 */  
public class Configuration {  
  
    public static final String CONFIG;//常量声明时不马上初始化  
      
    static {  
        Properties properties = new Properties();  
        //把一个properties读进来  
        CONFIG = "properties.getConfig";//通过properties的配置项config来初始化我们的常量config  
    }  
} 


第二种:我们可以配置Java的运行时配置,来指定一个-Dname=value的参数,这样也可以在类内部动态的接受到运行时指定的一个参数。
/** 
 * 第二种实现方法 
 * @author William 
 * 
 */  
public class Configuration {  
  
    public static final String CONFIG;//常量声明时不马上初始化  
      
    static {  
        CONFIG = System.getProperty("CONFIG");//通过系统的-D配置参数name=value形式来拿到这个配置值  
        //如果是eclipse,右键->RUN AS->Run Configurations->arguments->VMarguments 里输入(-DCONFIG=我们想要加入的配置)  
    }  
      
    public static void main(String[] args) {  
        System.out.println(Configuration.CONFIG);  
    }  
}  

第三种:我们还可以读的到系统配置的PATH或者CLASSPATH里面的值,同理,我们也可以配置自己的环境变量,然后在程序中一样也能读到这些配置的环境变量

/** 
 * 第三种实现方法 
 * @author William 
 * 
 */  
public class Configuration {  
  
    public static final String CONFIG;//常量声明时不马上初始化  
      
    static {  
        CONFIG = System.getenv("PATH");//通过System.getenv()方法可以拿到系统环境变量,但我自己指定的环境变量没有取得成功,如果有知道原因的给我留言哈谢谢  
          
    }  
      
    public static void main(String[] args) {  
        System.out.println(Configuration.CONFIG);  
    }  
}  

PS.System.getenv()方法,可以获得自己设定的系统变量,不过,在自己谁的设定过后一定要重启IDE工具,这样才能成功读取到。要不就会只读到一个null。
  • 相关文章
发表评论
用户名: 匿名