不兼容的类型:对象无法在java netbeans中转换为String
我正在尝试在我的项目中使用对象数组,我收到一个错误:
incompatible types: Object cannot be converted to String
在这条线上:
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}; } ....
你有两种方法就是将每个Object emt1,emt2,..转换为String,如下所示:
ST1 = new String[]{(String)emt1, (String)emt2, (String)emt3, (String)emt4};
或者您应该更改属性的类型:
Object emt1, emt2, emt3, emt4;
字符串
String emt1, emt2, emt3, emt4; ST1 = new String[]{emt1, emt2, emt3, emt4};
您已将emt1,emt2,emt3,emt4
为Object
。 在创建将数组赋值给变量ST1
的最后一行中,您将创建一个String
数组并在其中存储Object
intances。 这就是导致问题的原因。
如果您希望以这种方式使用对象,并且如果您确定emt1,emt2,emt3,emt4
对象都是字符串,则可以向代码添加emt1,emt2,emt3,emt4
如下所示:
ST1 = new String[] { (String) emt1, (String) emt2, (String) emt3, (String) emt4 };
这应该工作。
String是一个Object,但Object不一定是String。
您尝试使用变量,这些变量是编译器期望Strings的对象,编译器会告诉您。 也许emt1,emt2,emt3和emt4变量应该声明为String? (从给出的片段很难说)。