亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

在kotlin里面要怎么返回一個掛起函數而有不用標記?

那個動態代理是用java寫的,傳了個continuation進去就不需要標記掛起函數。但是如果是在kotlin中,這里會被要求標記為掛起函數或者協程中使用,而java的proxy的invoice是沒有掛起函數標記的,沒法用???應該怎么處理啊?java的寫好了,但是改成kotlin不會?

public?static?<T>?T?create(Class<T>?service)?{
????return?(T)?Proxy.newProxyInstance(service.getClassLoader(),?new?Class<?>[]{service}
????????????,?(o,?method,?args)?->?{
????????????????String?url?=?"";
????????????????BaseParam?requestParam?=?null;
????????????????String?requestMethod?=?"GET";
????????????????Class<?>?returnT?=?method.getReturnType();
????????????????if?(returnT?==?null?||?BaseResponse.class.isAssignableFrom(returnT))?{
????????????????????throw?new?RuntimeException("返回類型不是BaseResponse");
????????????????}
????????????????if?(method.getGenericReturnType()?==?Continuation.class?&&?args?!=?null?&&?args.length?>?0)?{
????????????????????int?len?=?args.length;
????????????????????Class?clazz;
????????????????????for?(int?i?=?0;?i?<?len;?i++)?{
????????????????????????clazz?=?args[i].getClass();
????????????????????????if?(BaseParam.class.isAssignableFrom(clazz))?{
????????????????????????????requestParam?=?(BaseParam)?args[i];
????????????????????????}
????????????????????}
????????????????????if?(requestParam?==?null)?{
????????????????????????requestParam?=?new?BaseParam();
????????????????????}

????????????????????if?(method.isAnnotationPresent(APIGet.class))?{
????????????????????????url?=?method.getAnnotation(APIGet.class).value();
????????????????????}?else?if?(method.isAnnotationPresent(APIPost.class))?{
????????????????????????url?=?method.getAnnotation(APIPost.class).value();
????????????????????????requestMethod?=?"POST";
????????????????????}
????????????????????Continuation<?>?continuation?=?(Continuation<?>)?args[args.length?-?1];
????????????????????return?OkHttpProxy.INSTANCE.await(NetWorkManager.Companion.getInstance().call(url,?requestParam,?requestMethod),?returnT,?continuation);
????????????????}
????????????????return?null;
????????????});
}


正在回答

舉報

0/150
提交
取消

在kotlin里面要怎么返回一個掛起函數而有不用標記?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號