【发布时间】:2012-10-09 01:38:11
【问题描述】:
今天,目前的番石榴版本好像是:
release is 13.0.1, August 3, 2012.
但我检查了以下来源:
git clone https://code.google.com/p/guava-libraries/
并对我看来非常有用的测试工具产生了兴趣:
我正在尝试验证我的所有方法都讨厌 null,就像 Doug Lea (http://gee.cs.oswego.edu/dl/html/vita.html) 似乎做的一样,除非 Joshua Bloch 错误地引用了他 (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;
}
【问题讨论】:
标签: java unit-testing testing null guava