不兼容类型:对象不能在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};