私は考えがあります。
Object
のtestVariable
(またはObject
を拡張するDummyType
クラス)にします。次に、システム変数から読み取ったものに基づいてプリミティブラッパークラスを使用して、必要なデータを変数にロードできます。
ので:もちろん
public class Test {
Object testVariable;
{
String whichType = null;
//Logic to read your system variable from wherever and store it in whichType
if(whichType.equals("int")) {
testVariable = new Integer(intVal);
}
else if(whichType.equals("double")) {
testVariable = new Double(doubleVal);
}
//etc.
}
、これは必ずしも、あなたが望むように、それはコンパイル時で入力した「把握」(と割り当てが実行時に場所を取るだろう、と、JavaではありませんTest
オブジェクトが作成されました)、代替のための合理的なフレームワークのようです。
また、初期化時にtestVariable
の値を自然に設定することもできます。
また、あなたがString
などの入力を受け付け、このような方法を持つことができます(お使いのシステム変数から読み取る)とプリミティブ型の適切なラッパークラスでそれを返します。
public Object getPrimitiveValue(String type, String value) {
if(type.equals("int")) {
return new Integer(Integer.parseInt(value));
}
else if(type.equals("double")) {
return new Double(Double.parseDouble(value));
}
//etc.
}
クールな質問を。好奇心のために、このユースケースが何であるか質問してもらえますか? – asteri
簡単な答えはいいえ、あなたがしようとしていることが分からなければ、合理的な選択肢があるかどうかを知ることは難しいです。 –
これは、内部で使用され、ソケット経由でプロプライエタリシステムとやりとりするAPIの一部です。内部システムは、同じ変数に対して整数または2倍をストリーミングすることができます。これは、環境変数を使用してその決定を行います。したがって、別のコードベースを維持する代わりに、コンパイル時に、これを判断できれば、頭痛の多くを節約できます:)。私たちはC++とC#でこれを実現できましたが、Javaは悲しみを与えてくれました。 – Karthik