6

Google の Guava ライブラリの EventBus を使用しようとしています。

Guava のドキュメントから、EventBus オブジェクトをインスタンス化するのは簡単なはずです。

私のコード:

package test;

import com.google.common.eventbus.EventBus;

public class Test {
    public static void main(String[] args) {
        EventBus bus = new EventBus("Sample");
    }
}

次のエラーが表示されます。

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Objects.firstNonNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
at com.google.common.cache.CacheBuilder.getKeyStrength(CacheBuilder.java:355)
at com.google.common.cache.CustomConcurrentHashMap.<init>(CustomConcurrentHashMap.java:206)
at com.google.common.cache.ComputingCache.<init>(ComputingCache.java:39)
at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:569)
at com.google.common.eventbus.EventBus.<init>(EventBus.java:156)
at test.Test.main(Test.java:7)
Java Result: 1

Guava 10.0、11.0、および 12.0 で試しましたが、常に同じエラーが発生します。私は OSX Lion を使用しており、Netbeans 7.1 を使用しています。Java 6 (32 ビットと 64 ビット) と Java 7 の両方を試しましたが、改善はありません。グーグルでは何も見つかりません。グアバに問題はありますか?それとも、いつものように、私は何かを見逃していますか?

よろしくお願いします、

アレッサンドロ

4

2 に答える 2

17

@biziclopが言ったことを拡張するために、クラスパスにGuavaの最新バージョンとgoogle-collectまたは3.0より前のバージョンのGuavaの両方がある可能性があります。Objects.firstNonNullは3.0で追加され、そのクラスの古いバージョンがロードされていることを示唆しています。

于 2012-07-09T17:24:43.933 に答える