如何在Java中引用变量的内容而不是变量的内容

时间:2012-02-20 02:15:42

标签: java

好的,我正在尝试为程序中的任何JTextField创建一个快速双重验证器。我想把它传递给一个函数,然后检查一个字段的内容,确保它是一个double,然后将它作为double返回给函数。

这是我到目前为止所做的,但是.TF.getValue()应该得到字符串的值,而不是字符串本身。

    public double valDouble(String theTF)
    {
            double theDouble;
            try
            {
                theDouble = theTF.getValue();
                return theDouble;
            }
    }

如何对字符串的内容运行getValue()?

编辑: 好吧,我有点搞砸了我的意思。我理解parseDouble,但是我在这里意外地离开了这就是我现在所拥有的:

    public static double valDouble(String theTF)
    {
        double theDouble;
        try
        {
            theDouble = Double.parseDouble(theTF);
        }
        catch(NumberFormatException e3)
        {
            theDouble = 0;
        }
        return theDouble;

    }

我的真实问题是theTF代表TextField的名称。我需要文本字段的值而不是TF中的值。我想在这里也可以突出显示红色等等。

回答(感谢Hunter): 最好的方法是传递Object,不知道为什么我试图解析字符串引用的值。

    public static double vDbl(JTextField theTF)
    {
        double theDouble;
        try
        {
            theDouble = Double.parseDouble(theTF.getText());
        }
        catch(NumberFormatException e3)
        {
            theTF.setText("Invalid");
            return 0;
        }
        return theDouble;
    }

2 个答案:

答案 0 :(得分:1)

您应该将JTextField对象传递给您的方法以获取您要查找的信息,我甚至不知道是否可以从其名称获取JTextField对象;也许有反思,但对于这个应用,反射似乎过于复杂。

例如:

public double valDouble(JTextField theTF)
{
        try
        {
            return Double.parseDouble(theTF.getText());
        }
        catch(NumberFormatException nfe)
        {
            System.err.println(nfe.getMessage());
        }
} 

答案 1 :(得分:1)

您可以使用Double类进行转换..

public Double valDouble(String theTF)
{
        Double theDouble;
        try
        {
            theDouble = Double.valueOf(theTF);
            return theDouble;
        }
}