1

パラメータをプロパティとして保存しようとしています。パラメータは :testSpeed ( = "20" )で、メソッドがあります :

saveProperty(String Parameter)

Parameter の値を次のようにファイルに保存します。

saveProperty(testSpeed);

私のプロパティファイルは次のようになります:

testSpeed : 20
testHeight : 300

私の質問は: Java ではパラメータの名前を取得することはsaveProperty()可能testSpeedです"testSpeed"saveProperty()?保存するには:

saveProperty(String Name,String Value);

そしてそれを次のように呼び出します:

saveProperty("testSpeed",testSpeed)

また、プロパティ ファイルから取得する必要がある場合は、次のように呼び出すことができます。

getProperty(testSpeed)

私はプロパティ ファイルの使用方法を知っています。例として使用しているだけです。プロパティ ファイルについて言及したときに混乱が生じた可能性があります。

問題の本質は、メソッドに渡されるパラメーターの名前を取得する方法です。

void someMethod(String Parameter_XYZ)
{
  // In here if I call someMethod(testSpeed), how to get the string "testSpeed", 
  // not it's value, but it's name, 
  // exactly spelled as "testSpeed" ?
}

これはJavaで実行できますか?

4

3 に答える 3

1

まず、プロパティ ファイルの正しい形式は次のとおりです。

testSpeed=20
testHeight=300

これから任意のプロパティを取得するには、saveProperty(String name, String value)メソッドで既に行っているキー名を渡す必要があります。ただし、あなたの質問を正しく理解した場合は、プロパティ名を渡さないようにしたいと考えています。次のようなカスタム メソッドを使用できます。

void saveTestSpeed(String value) {
    saveProperty("testSpeed", value);
}

Strig getTestSpeed() {
    getProperty("testSpeed");
}

編集:編集した質問に基づいています。

いいえ、Java ではできません。

Javaは厳密に値渡しであるため、呼び出し先で実際の変数名を特定することはできません。Java オブジェクト参照は名前ではなく値で渡されるため、メソッド内savePropertyでは引数の値しか取得できません。

次のようにメソッドの呼び出しを停止するものがないため、これも実用的ではありません。

savePropery( "20" );

この場合、プロパティの名前は何にする必要がありますか?

于 2013-08-23T19:01:51.883 に答える
1

プロパティを使用する:

public class Util
{
    private static final Properties prop = new Properties();

    static
    {
        try
        {
            prop.load(new FileReader(new File("prop.txt")));
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }

    public static void setProperty(String key, String value)
    {
        prop.setProperty(key, value);
        persistCurrentProperites();
    }

    public static String getProperty(String key)
    {
        return prop.getProperty(key);
    }

    private static void persistCurrentProperites()
    {
        try
        {
            prop.store(new FileWriter(new File("prop.txt")), null);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
}
于 2013-08-23T18:59:02.640 に答える
0

より一般的なソリューションを実現するために、キーと値のペアを維持することをお勧めします。使用できますProperties

void saveProperty(String key, String value) {

    properties.setProperty(key, value);
}

使用getPropertyして取得する

properties.getProperty(key)
于 2013-08-23T18:52:06.750 に答える