簡體   English   中英

編譯時的原始變量類型

[英]Primitive variable type in compile time

不確定我是否正確措辭。 如果您需要更多信息,請與我們聯系。 我們需要根據系統環境變量確定變量的類型。

所以,假設我們有以下課程

class Test
{
    DUMMY_TYPE testVariable;
}

DUMMY_TYPE基於系統變量確定。 因此,當Java編譯時,是否可以讓Java使用System Environment變量來確定編譯類型的類型?

另外,是否可以在Eclipse上以某種方式設置它,Eclipse將繼續在IDE上向我顯示DUMMY_TYPE,無論我在何處使用它,但是在編譯和構建它時,可以使用基於環境變量的正確類型替換DUMMY_TYPE?

我有個主意。

testVariable Object類型的testVariable (或擴展ObjectDummyType類)。 然后,您可以根據從系統變量中讀取的內容,使用原始包裝類加載包含所需數據的變量。

所以:

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.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM