如何在Java中引用变量的元素而不是变量

如何在Java中引用变量的元素而不是变量,java,Java,好的,我正在尝试为程序中的任何JTextField创建一个快速的双重验证器。我想把它传递给一个函数,这个函数检查一个字段的内容,确保它是double,然后将它作为double返回给函数 这是我到目前为止所做的,但是theTF.getValue()应该获取字符串的值,而不是字符串本身 public double valDouble(String theTF) { double theDouble; try {

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

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

    public double valDouble(String theTF)
    {
            double theDouble;
            try
            {
                theDouble = theTF.getValue();
                return theDouble;
            }
    }
如何对字符串的内容运行getValue()

编辑: 好吧,我有点搞砸了我的意思。我理解这一点,但我把它忘在了意外事件上,这就是我现在所拥有的:

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

    }
我真正的问题是theTF代表一个文本字段的名称。我需要的是文本字段的值,而不是theTF中的值。我想把这个放在这里,也许是为了突出红色区域等等

回答(谢谢Hunter): 最好的方法是传递对象,但不确定我为什么要尝试解析字符串引用的值

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

你真的应该把JTextField对象传递给你的方法来获取你想要的信息,我甚至不知道是否有可能仅仅从它的名字中获取JTextField对象;可能是反射,但对于这个应用程序,反射似乎过于复杂

例:


您可以使用双类来转换它

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

抱歉,我漏掉了parseDouble,我在问如何获取JTextField对象的值,其中theTF发送的名称。为什么不直接将JTextField对象传递给该方法?@Hunter啊,是的,我不知道我在想什么!谢谢,把它作为答案,我接受。既然你可以通过JTextField,为什么不通过JTextField.getText()?您的双重验证程序没有理由访问TextField对象。
public Double valDouble(String theTF)
{
        Double theDouble;
        try
        {
            theDouble = Double.valueOf(theTF);
            return theDouble;
        }
}