Как интерпретировать этот Kotlin для декомпиляции java mech

#android #kotlin #decompiling

#Android #kotlin #декомпиляция

Вопрос:

Я декомпилировал Android apk (код Kotlin), пытаясь понять код, и наткнулся на это:

 public final class RetrofitJSONArrayConverter extends Factory {
    public static final Companion Companion = new Companion();
    private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=UTF-8");

    @Metadata(bv = {1, 0, 3}, d1 = {"u0000u0012nu0002u0018u0002nu0002u0010u0000nu0002bu0002nu0002u0018u0002nu0000bu0003u0018u00002u00020u0001Bu0007bu0002¢u0006u0002u0010u0002Ru0010u0010u0003u001au0004u0018u00010u0004Xu0004¢u0006u0002nu0000¨u0006u0005"}, d2 = {"Lio/voiapp/voi/util/RetrofitJSONArrayConverter$Companion;", "", "()V", "MEDIA_TYPE", "Lokhttp3/MediaType;", "app_release"}, k = 1, mv = {1, 1, 13})
    /* compiled from: RetrofitJSONArrayConverter.kt */
    public static final class Companion {
        private Companion() {
        }
    }

    @Nullable
    public Converter<ResponseBody, ?> responseBodyConverter(@NotNull Type type, @NotNull Annotation[] annotationArr, @NotNull Retrofit retrofit) {
        Intrinsics.checkParameterIsNotNull(type, "type");
        Intrinsics.checkParameterIsNotNull(annotationArr, "annotations");
        Intrinsics.checkParameterIsNotNull(retrofit, "retrofit");
        return Intrinsics.areEqual((Object) JSONArray.class, (Object) type) != null ? (Converter) RetrofitJSONArrayConverter$responseBodyConverter$1.INSTANCE : null;
    }

    @Nullable
    public Converter<?, RequestBody> requestBodyConverter(@NotNull Type type, @NotNull Annotation[] annotationArr, @NotNull Annotation[] annotationArr2, @NotNull Retrofit retrofit) {
        Intrinsics.checkParameterIsNotNull(type, "type");
        Intrinsics.checkParameterIsNotNull(annotationArr, "parameterAnnotations");
        Intrinsics.checkParameterIsNotNull(annotationArr2, "methodAnnotations");
        Intrinsics.checkParameterIsNotNull(retrofit, "retrofit");
        return Intrinsics.areEqual((Object) JSONArray.class, (Object) type) != null ? (Converter) RetrofitJSONArrayConverter$requestBodyConverter$1.INSTANCE : null;
    }
}
  

Я знаю, что код Kotlin может быть сильно неверно истолкован java-декомпилятором
но как декомпилятор может пропустить все аргументы этого метода

Есть какие-нибудь мысли по этому поводу?

Комментарии:

1. Почему, что с этим не так?

2. У requestBodyConverter и responseBodyConverter есть много аргументов, которые никогда не используются

3. И… почему это проблема? Конечно, они могли быть использованы, но не в данном конкретном случае .

4. Это Converter.Factory для модернизации. requestBodyConverter и responseBodyConverter используются Retrofit, сигнатуры методов также поступают из Retrofit. Очевидно, что если вы хотите понять, для чего предназначены эти аргументы метода, вам следует прочитать документацию по модернизации, в частности square.github.io/retrofit/2.x/retrofit/retrofit2 /…

5. Спасибо, теперь я понимаю