今日、現在のグアバのバージョンは次のようです。
release is 13.0.1, August 3, 2012.
しかし、私は次のソースをチェックアウトしました:
git clone https://code.google.com/p/guava-libraries/
そして、私にとって非常に便利なテストツールのように見えるものに興味をそそられました:
Joshua Bloch が彼を誤って引用しない限りnull
( http : //www.youtube.com/watch?v=ZeO_J2OcHYM#t=26m35s ) 「無敵」であること。
とにかく、NullPointerTester.java
私はそれを自分のプロジェクトに組み込もうとしているので、完璧に思えます。
依存関係 ( NullPointerTester
-> Invokable<?, ?>
、 -> ... など) をたどるのは@since 14.0
、基本的に将来のバージョンに属するクラスに遭遇するので面倒です。
次/将来のバージョンの Guava の自己完結型 JAR をビルドし、すべての依存関係を処理する最善の方法は何ですか? 注:ソースは「すべて」のようですgit
...
ここで読むのをやめることができます。
このようなことをするのが待ちきれません。これは本当にクールだと思います。
注:欠けているのは「セキュリティチェック」です。「コンストラクターが非公開にされている場合は、とにかくそれを反映して呼び出すことができないことを確認してください...
私がより優れたコーダーだったら貢献したいのですが、これが私にできることのすべてであり、意図は明確であるはずですが、非常に貧弱です?
static boolean isDefaultConstructorDisabled(Class<?> type) {
boolean isDefaultConstructorDisabled = false;
Constructor<?>[] declaredConstructors = type.getDeclaredConstructors();
Constructor<?> defaultContructor = declaredConstructors[0];
defaultContructor.setAccessible(true);
try {
defaultContructor.newInstance();
} catch (InvocationTargetException invocationTargetException) {
Throwable cause = invocationTargetException.getCause();
if (cause instanceof UnsupportedOperationException
&& cause.getMessage().contains(
ErrorMessage.DefaultConstructor.DISABLED)) {
isDefaultConstructorDisabled = true;
}
} catch (Throwable throwable) {
throwable.printStackTrace();
}
return isDefaultConstructorDisabled;
}