2016-08-08 2 views
0

私はゲームのためのモードを作りました。 Eclipseを使用するとすべて正常に動作し、コンパイルは成功し、作成したmodを使用してゲームをプレイできます。それは、Eclipse上で動作しますが、Gradleのでない理由を私は理解していない実際の引数は...メソッドの呼び出し変換によって...に変換できません

C:\Users\Alexandre\MCForge\ForgeCreeperHeal\debug\build\sources\main\java\fr\eyzox\dependencygraph\DependencyGraph.java:31: error: method buildIndex in class DataKeyProvider<K> cannot be applied to given types; 
         node.keyProvider.buildIndex(index, node); 
             ^
    required: Map<KEY,DependencyGraph<KEY,? extends IData<KEY>>.Node>,DependencyGraph<KEY,? extends IData<KEY>>.Node 
    found: Map<KEY,DependencyGraph<KEY,DATA>.Node>,DependencyGraph<KEY,DATA>.Node 
    reason: actual argument Map<KEY,DependencyGraph<KEY,DATA>.Node> cannot be converted to Map<KEY,DependencyGraph<KEY,? extends IData<KEY>>.Node> by method invocation conversion 
    where KEY,DATA,K are type-variables: 
    KEY extends Object declared in class DependencyGraph 
    DATA extends IData<KEY> declared in class DependencyGraph 
    K extends Object declared in class DataKeyProvider 

:私はGradleのを使用して、私のコードをコンパイルするとき はしかし、私はこのエラーを取得します。 多分、それはpur javaのジェネリックのミスの理解ですが、Eclipseではすべてがうまく動作するので、私はそれを疑っています。 これは私の側からのエラーですか、それともgradleプラグインのバグを探していますか? 私はgradleの初心者です。

私の問題を理解するには、おそらくソースコードとbuild.gradleが必要です。 ここにレポを作成しました:https://github.com/RedRelay/FCH_DEBUG

編集:Eclipseに関連する問題のようです。私はEclipseに独自のコンパイラがあることを学んだだけで、標準のjavacの代わりにこれを許可しているようです。

答えて

0

Eclipseには、標準のjavacコンパイラではなく、独自のコンパイラがあります。私は protected abstract <D extends IData<K>> void buildIndex(final Map<K, DependencyGraph<K, D>.Node> index, final DependencyGraph<K, D>.Node theNode) throws DuplicateKeyException;

protected abstract void buildIndex(final Map<K, DependencyGraph<K, ? extends IData<K>>.Node> index, final DependencyGraph<K, ? extends IData<K>>.Node theNode) throws DuplicateKeyException; を変更しましたし、それが機能するようになりました。

関連する問題