不兼容类型:对象不能在java netbeans中转换为字符串

不兼容类型:对象不能在java netbeans中转换为字符串,java,netbeans,Java,Netbeans,我试图在项目中使用对象数组,但出现错误: incompatible types: Object cannot be converted to String ST1 = new String[]{emt1, emt2, emt3, emt4}; 在这一行: ST1 = new String[]{emt1, emt2, emt3, emt4}; 现在我不知道这个错误的原因是什么。请帮帮我 ST1 = new String[]{emt1, emt2, emt3, emt4}; Object[]

我试图在项目中使用对象数组,但出现错误:

incompatible types: Object cannot be converted to String
ST1 = new String[]{emt1, emt2, emt3, emt4};
在这一行:

ST1 = new String[]{emt1, emt2, emt3, emt4};
现在我不知道这个错误的原因是什么。请帮帮我

ST1 = new String[]{emt1, emt2, emt3, emt4};
Object[] ST1;
Object emt1,emt2,emt3,emt4;


private void jButton3ActionPerformed(ActionEvent evt) {
    try {
        emt1 = null;
        emt2 = null;
        emt3 = null;
        emt4 = null;
        ST1 = new String[]{emt1, emt2, emt3, emt4};
    }
      ....

字符串是对象,但对象不一定是字符串

ST1 = new String[]{emt1, emt2, emt3, emt4};

您尝试使用变量,这些变量是编译器需要字符串的对象,并且编译器会这样告诉您。也许emt1、emt2、emt3和emt4变量应该声明为字符串?(从给出的片段很难判断)。

您有两种方法,一种是强制转换每个对象emt1,emt2。。像这样串:

ST1 = new String[]{emt1, emt2, emt3, emt4};
ST1 = new String[]{(String)emt1, (String)emt2, (String)emt3, (String)emt4};
或者,您应该更改属性的类型:

ST1 = new String[]{emt1, emt2, emt3, emt4};
Object emt1, emt2, emt3, emt4;

ST1 = new String[]{emt1, emt2, emt3, emt4};
String emt1, emt2, emt3, emt4;
ST1 = new String[]{emt1, emt2, emt3, emt4};

您已将
emt1、emt2、emt3、emt4声明为
Object
。在将数组分配给变量
ST1
的最后一行中,您正在创建一个
String
数组,并在其中存储
对象
值。这就是造成问题的原因

ST1 = new String[]{emt1, emt2, emt3, emt4};
如果您希望以这种方式使用对象,并且如果您确定
emt1、emt2、emt3、emt4
对象都是字符串,则可以向代码中添加强制转换,如下所示:

ST1 = new String[]{emt1, emt2, emt3, emt4};
    ST1 = new String[] { (String) emt1, (String) emt2, (String) emt3, (String) emt4 };

这应该行。

你能告诉我们你到底想做什么吗,因为我不理解你的程序的概念。那不应该是
新对象[]{…}
?为什么要声明四个
对象
变量并尝试将它们放入
字符串
数组中?
新字符串[]{emt1,emt2,emt3,emt4}
这是一个
字符串
数组,请改为创建一个对象数组。谢谢@YCF\u L。你的答案对我也很有用,比顶部的anacon的答案更清楚
ST1 = new String[]{emt1, emt2, emt3, emt4};