Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不兼容类型错误-如何修复?_Java_Android - Fatal编程技术网

Java 不兼容类型错误-如何修复?

Java 不兼容类型错误-如何修复?,java,android,Java,Android,我正在做一个Android Studio项目,它在java代码中有一些错误。 如问题中所述,我得到了不兼容类型错误。错误文本如下所示 不兼容类型错误: 必需:com.tutorial.air.model.json.Object 找到:Java.util.concurrent.Executer 这里我附加了responsibleJava方法 public <S extends SyncManager> S createSyncManager(Class<S> cls, Ob

我正在做一个Android Studio项目,它在java代码中有一些错误。 如问题中所述,我得到了不兼容类型错误。错误文本如下所示

不兼容类型错误:

必需:com.tutorial.air.model.json.Object

找到:Java.util.concurrent.Executer

这里我附加了responsibleJava方法

public <S extends SyncManager> S createSyncManager(Class<S> cls, Object obj) {
        if (obj != null) {
            try {
                Class cls2 = obj.getClass();
                if (obj instanceof RealmModel) {
                    cls2 = Util.getOriginalModelClass(((RealmModel) obj).getClass());
                }
                return (SyncManager) cls.getDeclaredConstructor(new Class[]{Executor.class, SessionManager.class, cls2}).newInstance(new Object[]{this.mExecutor, this, obj});
            } catch (Throwable e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        return (SyncManager) cls.getDeclaredConstructor(new Class[]{Executor.class, SessionManager.class}).newInstance(new Object[]{this.mExecutor, this});
    }
清除这条线

如果您将对象用作com.tutorial.air.model.json.Object,则应将其更改为com.tutorial.air.model.json.Object

默认情况下,Object表示java.lang.Object


保持当前导入并使用java.lang.Object作为错误行。

错误消息非常清楚。此新对象未引用java.lang.Object,因此无法将任何内容放入该类型的数组中。此错误表示This.mExecutor,这不是com.tutorial.air.model.json.Object此类型。您能添加日志中显示的错误吗?请上传源代码的导入行。@Toris Done adding下面的答案是正确的。更详细地说:您真的不应该将类对象命名为java.lang.Object是所有类的父类,这确实会引起混淆。newInstance函数需要java.lang.Object[],但您传递的是com.tutorial.air.model.json.Object[]这是错误的,newInstance方法实际上需要类似com.tutorial.air.model.json.Object的东西,尽管这对类来说是一个非常糟糕的名称。问题似乎是newInstance方法的参数与constructor@JensV使用java.lang.Object或com.tutorial.air.model.json.Object作为另一个。基本上,这是后面的一个。啊,我明白了,我没有发现Object[]数组的类型也不正确。com.tutorial.air.model.json.Object类中没有任何内容。所以我现在尝试java.lang.Object。
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import com.tutorial.air.Application;
import com.tutorial.air.model.json.AuthCredential;
import com.tutorial.air.model.json.AuthCredential.Type;
import com.tutorial.air.model.json.MigrateRequest;
import com.tutorial.air.model.json.Object;
import com.tutorial.air.model.json.RegisterRequest;
import com.tutorial.air.model.json.Token;
import com.tutorial.air.model.realm.User;
import com.tutorial.air.network.AuthService;
import com.tutorial.air.network.RestClient;
import com.tutorial.air.utils.Date;
import com.tutorial.air.model.json.Object;