【发布时间】:2020-07-09 22:14:11
【问题描述】:
我刚刚开始了一个新的 maven 项目,并做了一个 Retrofit 客户端的简单实现。我收到以下警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by retrofit2.Platform (file:/C:/Users/Admin/.m2/repository/com/squareup/retrofit2/retrofit/2.8.1/retrofit-2.8.1.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of retrofit2.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Process finished with exit code 0
这里是代码
import retrofit2.Retrofit;
import retrofit2.SimpleXmlConverterFactory;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
public class RetrofitClient {
private static Retrofit retrofit = null;
private RetrofitClient() { }
public static EndPoints getAPI(String baseUrl) {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(SimpleXmlConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
return retrofit.create(EndPoints.class);
}
}
界面很简单
import retrofit2.Call;
import retrofit2.http.GET;
public interface EndPoints {
@GET("teststatuses")
Call<String> testStatus();
}
调用看起来像这样:
EndPoints endPoints = RetrofitClient.getAPI("http://localhost:8080/");
Call<String> repos = endPoints.testStatus();
System.out.println(repos.execute());
该项目使用 SDK 11 运行 Java 语言级别 11
【问题讨论】: