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