0

これは奇妙に聞こえるかもしれませんが、実際には非常に単純です。

簡単な説明: というクラス変数があります

public static final String ACCELEROMETER_X = "AccX";

1つの関数でこれを行い、列挙型から「ACCELEROMETER_X」を取得します(センサーは列挙型のarrayListです)。

for i...
    columns = columns + sensors.get(i).name()

ポイントは「ACCELEROMETER_X」ではなく「AccX」の列で紹介したいということです。何か案が?スイッチとケースを使用して実行できることはわかっていますが、列挙型には30を超える値があるため、他の「よりクリーンな」方法を好むでしょう。

4

4 に答える 4

1

enum定数をその文字列値に置き換えたい場合は、その文字列をフィールドとして保持することをお勧めしenumます。

enum Sensor {
    ACCELEROMETER_X("AccX"),
    // Other constants
    ;

    private final String abbreviation;

    private Sensor(final String abbreviation) {
        this.abbreviation = abbreviation;
    }

    @Override
    public String toString() {
        return abbreviation;
    }
}

そして代わりに:

sensors.get(i).name()

これを使って:

sensors.get(i).toString()
于 2013-07-27T11:52:33.083 に答える