不兼容的类型错误-如何解决?

时间:2019-01-28 12:53:31

标签: java android

我正在研究一个Android Studio项目,该项目在Java代码中存在一些错误。 如问题中所述,我收到不兼容类型错误。错误文本如下。

  

不兼容的类型错误:

     

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

     

找到了:Java.util.concurrent.Executer

在这里,我附加了可重复使用的Java方法。

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});
    }

错误在于两行:

  

返回(SyncManager)cls.getDeclaredConstructor(new Class [] {Executor.class,SessionManager.class,cls2})。newInstance(new Object [] { this.mExecutor,this obj} );

  

返回(SyncManager)cls.getDeclaredConstructor(new Class [] {Executor.class,SessionManager.class})。newInstance(new Object [] { this.mExecutor,this });

突出显示的单词有问题。

让我知道是否需要其他任何调查。预先感谢。

编辑:

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;

1 个答案:

答案 0 :(得分:2)

清除此行。

import com.tutorial.air.model.json.Object;

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

Object的默认含义是java.lang.Object

保留当前的导入并将java.lang.Object用于错误行。