Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么会有"+&引用;运算符未定义?JAVA_Java - Fatal编程技术网

为什么会有"+&引用;运算符未定义?JAVA

为什么会有"+&引用;运算符未定义?JAVA,java,Java,我在eclipse中编写了这段代码= 斯特拉特班(我犯了个错误) 窗口类 import javax.swing.JFrame; import javax.swing.JButton; import java.awt.TextField; import java.awt.FlowLayout; import java.awt.TextField; import java.awt.Event.*; import java.awt.event.ActionEvent;

我在eclipse中编写了这段代码=

斯特拉特班(我犯了个错误)

窗口类

  import javax.swing.JFrame;
  import javax.swing.JButton;
  import java.awt.TextField;
  import java.awt.FlowLayout;
  import java.awt.TextField;
  import java.awt.Event.*;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;

  public class Window extends JFrame {
TextField kimeno = new TextField(25);
TextField dkimeno = new TextField(25);
TextField n1 = kimeno;
TextField n2 = dkimeno;
private JButton plus;
public Window()
{
    super("Math engine");
    setLayout(new FlowLayout());
    plus = new JButton("+");
    plus.setFocusable(false);
    plus.addActionListener(new EnableButton());
    add(plus);
    add(kimeno);
    add(dkimeno);
}

public class EnableButton implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        System.out.println(n1+n2);
    }

    }
  }
但是我仍然在Window类的第32行中得到一个错误
错误是“参数类型java.awt.TextField、java.awt.TextField的运算符+未定义”

+
运算符对
TextField
对象没有意义。你想要

System.out.println(n1.getText() + n2.getText());

添加两个
TextField
对象意味着什么?Java中的+运算符只能用于数字或字符串操作数。(好吧,这稍微简化了一点,您可以在Java语言规范中查找确切的规则。)

如果要计算文本字段中存储的两个数字字符串的总和(我假设为整数),可以使用以下方法:

Integer.parseInt(n1.getText()) + Integer.parseInt(n2.getText())
当然,您应该添加一些错误处理。

您尝试过吗

System.out.println(n1.getText() + n2.getText());
当与字符串一起使用时,“+”运算符将它们连接在一起


在本例中,您处理的不是字符串,而是TextField,它附加了.getText()函数以获取其值的字符串表示形式

你如何定义这个操作?你被字符串的旋转所吸引。如果您说
“Some string”+Some object
,那么编译器将使用
toString
Some object
强制为string。但如果表达式中没有字符串,则不会。简单的修复方法是编码
println(“+n1+n2)
@HotLicks,它将显示对象引用…@Reimeus——在这种情况下,可能是这样。但那将是另一个问题。即使是对问题的最低理解+1,但如果你检查空值,也会得到额外的布朗尼点数。@chrylis它们是包私有的,非最终的,因此在单击按钮之前有很多机会
null
它们。哦,我以前从哪里听说过?!每次我在生产系统中看到NullPointerException时,一些开发人员说“它永远不会为null”的回音仍在开发人员的网络空间中回响。如何将文本字段中的文本转换为数字?
System.out.println(n1.getText() + n2.getText());