猿问

与房间一起使用类型转换器时的StackOverFlow错误


我正在尝试拉动对象类型的Popularity字段Number。


Room需要此对象的类型转换器,我在下面进行了集成:


public class NumberConverter {


@TypeConverter

public static Number toNumber(Integer integer){

    return integer == null ? null : toNumber(integer); }



@TypeConverter

public static Integer toInt(Number number){

    return number == null ? null : number.intValue();

  }



}

加载应用程序时,我立即收到引用以下行的StackOverFlow错误:


        return number == null ? null : number.intValue();

注意:我还Executors用于异步处理读写:


public class AppExecutors{


//for Singleton Instantiation

private static final Object LOCK = new Object();

private static AppExecutors sInstance;

private final Executor diskIO;

private final Executor mainThread;

private final Executor networkIO;


public AppExecutors(Executor diskIO, Executor mainThread, Executor networkIO) {

    this.diskIO = diskIO;

    this.mainThread = mainThread;

    this.networkIO = networkIO;

}



public static AppExecutors getsInstance(){

    if (sInstance == null){

        synchronized (LOCK){

            sInstance = new AppExecutors(Executors.newSingleThreadExecutor(),

                    Executors.newFixedThreadPool(3),

                    new MainThreadExecutor());

        }

    }

    return sInstance;

};


public Executor diskIO(){return diskIO;};

public Executor mainThread(){return mainThread;}

public Executor netWorkIO(){return networkIO;}


private static class MainThreadExecutor implements Executor{


    private android.os.Handler mainThreadHandler = new android.os.Handler(Looper.getMainLooper());


    @Override

    public void execute(@NonNull Runnable runnable) {

        mainThreadHandler.post(runnable);

    }

   }




}


LEATH
浏览 110回答 1
1回答

慕姐4208626

您能否在代码中检查此功能:@TypeConverter public static Number toNumber(Integer integer){    return integer == null ? null : toNumber(integer); }您recursion在这里无限进行,也许这就是为什么要获得的原因StackOverflowError。
随时随地看视频慕课网APP

相关分类

Java
我要回答