如何在控制台应用中设置属性

时间:2015-05-16 15:51:17

标签: java

我已经编写了如下代码。

public class Klazz {
    static int __prop = 10;

    public static void main( String args[] ) {
        if ( args.length > 0 ) {
            String l = args[0];
            if ( l.equals( "-show" ) ) {
                System.out.println( __prop );
             }
             if ( l.equals( "-set" ) ) {
                 int np = Integer.parseInt( args[1] );
                 __prop = np;
             }
          } else {
              System.out.println( "No argument passed!" );
          }
    }
}

问题在于,即使我之前致电java Klazz -show,每次拨打10时,都会显示java Klazz -set 12。如何保持传递的值?

2 个答案:

答案 0 :(得分:0)

static关键字不会使字段在程序的多次执行中保持不变。要保持字段值,您需要将其保存在某个位置,例如在文件中。

由于您正在处理属性,因此您可以使用java.util.Properties类从.properties文件进行保存和加载:

  

Properties类表示一组持久的属性。 Properties可以保存到流中或从流加载。属性列表中的每个键及其对应的值都是一个字符串。

答案 1 :(得分:0)

static个变量不会在同一程序的调用之间提供持久性。一旦将变量设置为新值,只要程序正在运行,它就会保持设置状态,但是一旦程序退出,该变量的值就会随之消失。

如果您希望跨运行存储变量,请使用其他机制 - 例如,将值保存在文件中(tutorial)。