substrate-client-kotlin icon indicating copy to clipboard operation
substrate-client-kotlin copied to clipboard

use in Java - error: reference to getMetadata is ambiguous

Open paulvi opened this issue 4 years ago • 1 comments

public static void main(String[] args) {
        String rpcUrl = "wss://127.0.0.1:9944";
        var provider = new SubstrateProvider(rpcUrl);
        var meta = provider.getMetadata().blockingGet();

}

build and get error

 % gradle build

> Task :compileJava FAILED
bcd-java/src/main/java/UsingSubstrateClientKotlin.java:10: error: reference to getMetadata is ambiguous
        var meta = provider.getMetadata().blockingGet();
                           ^
  both method getMetadata() in SubstrateProvider and method getMetadata() in SubstrateProvider match
bcd-java/src/main/java/UsingSubstrateClientKotlin.java:10: error: cannot find symbol
        var meta = provider.getMetadata().blockingGet();
                                         ^
  symbol:   method blockingGet()
  location: class RuntimeMetadata
2 errors

FAILURE: Build failed with an exception.

For sure this should be "call Kotlin from Java" issue, however I have no clue how to solve

paulvi avatar Sep 10 '21 08:09 paulvi

I guess related docs are https://kotlinlang.org/spec/overload-resolution.html

But I have not found any generation recommendation for dealing with in Java.

paulvi avatar Sep 10 '21 09:09 paulvi