不兼容的类型:对象无法在java netbeans中转换为String

时间:2017-02-13 09:50:24

标签: java netbeans

我试图在我的项目中使用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};
    }
      ....

3 个答案:

答案 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? (很难从给出的片段中看出来。)