我试图在我的项目中使用object Array,但是我收到错误:
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};
}
....
答案 0 :(得分:3)
你有两种方法就是将每个Object emt1,emt2,..转换为String,如下所示:
ST1 = new String[]{(String)emt1, (String)emt2, (String)emt3, (String)emt4};
或者您应该更改属性的类型:
Object emt1, emt2, emt3, emt4;
To String
String emt1, emt2, emt3, emt4;
ST1 = new String[]{emt1, emt2, emt3, emt4};
答案 1 :(得分:1)
您已将emt1,emt2,emt3,emt4
声明为Object
。在创建将数组分配给变量ST1
的最后一行中,您将创建一个String
数组并在其中存储Object
个intances。这就是导致问题的原因。
如果您希望以这种方式使用对象,并且如果您确定emt1,emt2,emt3,emt4
对象都是字符串,则可以像这样在代码中添加强制转换:
ST1 = new String[] { (String) emt1, (String) emt2, (String) emt3, (String) emt4 };
这应该有用。
答案 2 :(得分:0)
String是一个Object,但Object不一定是String。
您尝试使用编译器期望Strings的对象变量,编译器会告诉您。也许emt1,emt2,emt3和emt4变量应该声明为String? (很难从给出的片段中看出来。)