`
JavaLuSir
  • 浏览: 19193 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
转载自http://blog.csdn.net/yyaf2013/article/details/17356813

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

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

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。
分享到:
评论

相关推荐

    java常量变量表达式

    Java是一种广泛使用的面向对象的编程语言,以其安全性、平台无关性和多线程能力著称。在Java中,常量变量表达式是编程时常见的概念,它们涉及到如何定义、使用和管理不可变的数据。 1. 常量变量: 在Java中,常量是...

    Java中的常量如何避免反模式Java开发Java经验技巧

    在Java编程中,常量的使用是至关重要的,它们代表了程序中不变的值,如配置参数、数学常数或固定的字符串。然而,如果不正确地处理常量,可能会导致一些反模式,降低代码的可读性、可维护性和性能。这篇名为“Java中...

    Java中常量.pdf

    Java中的常量是一种不可变的值,一旦被赋值后就不能再进行修改。它们在编程中扮演着重要的角色,主要用于存储固定不变的数据,比如数学常数、配置参数或者硬编码的值。本篇将深入探讨Java中常量的定义、语法格式、...

    Java常量的应用共2页.pdf.zip

    Java语言中的常量是编程中不可或缺的部分,它们代表固定不变的值,不能被修改。常量的使用在程序设计中有着重要的作用,如表示固定的数值、字符串或布尔值,提高代码的可读性和稳定性。本资料"Java常量的应用共2页....

    Java程序练习100题.doc

    2. Java 方法:Java 中的方法是一种代码块,用于实现某个特定功能。方法可以有参数和返回值,可以被重复使用和调用。 四、Java Applet 和图形编程 1. Java Applet:Java Applet 是一种小型的 Java 程序,用于在...

    Java中初始化数据域的四种方法

    本篇文章将详细探讨四种常见的初始化数据域的方法,结合给出的代码示例进行解析。 1. **直接赋值** 这是最基础的初始化方式,只需在声明变量时直接为其赋予一个初始值。例如在`InitFiled.java`中可能有这样的代码...

    (完整版)最全的java学习笔记(必看).pdf

    * 1.1 编程语言:Java是一种面向对象的编程语言,具有跨平台、动态加载、多线程等特点。Java语言的设计目标是提供一种通用的、基于对象的、高度面向对象的编程语言。 * 1.2 Java特点:Java语言的特点包括平台独立性...

    黑马程序员:轻松精通Java学习路线基础篇!JAVA语言

    6. 运算符:熟练掌握 Java 中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。 7. 流程控制语句:了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构...

    java代码-定义并输出常量和变量

    在Java编程语言中,常量和变量是两个基本概念,它们是存储和处理数据的核心工具。常量是指在程序执行过程中不可更改的值,而变量则可以改变其值。了解和熟练使用常量与变量是编写高效、可读性强的Java代码的基础。 ...

    java基础测试题答案

    8. **反射与注解**:反射允许程序在运行时检查类、接口、字段和方法的信息,并能动态创建对象和调用方法。注解是一种元数据,用于向编译器或JVM提供信息,例如用于代码的自动生成、配置或验证。 9. **多线程**:...

    毕向东java基础总结(完整版)

    java有三种技术架构:JAVAEE(Java Platform Enterprise Edition)、JAVASE(Java Platform Standard Edition)和JAVAME(Java Platform Micro Edition)。JDK(Java Development Kit)是java的开发和运行环境,JRE...

    java全集.pdf JAVA全集

    - **局部内部类**:定义在一个方法中的类。 - **静态内部类**:定义在外部类中的内部类,使用static修饰符。 - **匿名内部类**:没有名字的内部类,通常用于实现接口或继承抽象类。 **7.12 集合** - 集合框架提供...

    java笔记 java笔记

    - **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一段代码。 - **包(Package)**:用于组织类和接口的命名空间。 #### 3. 定义、关键字和类型 ##### 3.1 注释的三种形式 - **单行注释**:使用`/...

    Java面向对象程序设计

    - **常量与字符串**:final关键字用于声明常量,String类在Java中的特殊地位及其不可变性。 3. **第3章:运算符、表达式和语句** - **运算符**:包括算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符等...

    Java 常量与变量的区别详细介绍

    Java编程语言中的常量和变量是程序中存储数据的基础元素,理解它们的区别至关重要。常量和变量在概念、使用及内存管理上有明显的差异。 **常量**是指在程序执行过程中其值不能改变的量。在Java中,常量可以通过定义...

    Java笔记总结.pdf

    构造方法是Java语言中的特殊方法,它可以实例化对象并给私有属性赋值。 在Java语言中,垃圾对象是没有变量引用的对象。Java语言中的变量初始化是自动的,引用型变量为null。Java语言中的面向对象特点包括封装性、...

    core java 卷1 pdf

    接口是完全抽象的类,只包含常量和抽象方法。抽象类可以有非抽象方法,但至少有一个抽象方法。它们用于实现多继承和定义规范。 十一、异常处理 Java通过try-catch-finally语句块来处理运行时错误,提供了一种统一的...

    达内java学习基础笔记整理

    3.3 常量和变量:Java语言中有两种类型的量:常量和变量。常量是不可更改的值,而变量是可以更改的值。 3.4 运算符与表达式:Java语言中的运算符包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。 3.5 编程...

    Java 初级软件工程师 认证考试试卷(A卷)及答案.pdf

    6. 类型转换:在Java中,基本数据类型的类型转换需要明确地进行强制类型转换,比如要将double类型的常量赋值给int类型的变量,应使用(int)进行显式转换。 7. 堆与栈内存分配:在Java中,对象实例化时会在堆内存中...

Global site tag (gtag.js) - Google Analytics