有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java guavatestlib未来版本JAR

今天,目前的番石榴版本似乎是:

release is 13.0.1, August 3, 2012.

但我查到了以下来源:

git clone https://code.google.com/p/guava-libraries/

对我来说,这似乎是一个非常有用的测试工具,引起了我的兴趣:

http://code.google.com/p/guava-libraries/source/browse/guava-testlib/src/com/google/common/testing/NullPointerTester.java

我试图验证我所有的方法都像Doug Lea(http://gee.cs.oswego.edu/dl/html/vita.html)一样厌恶null,除非Joshua Bloch错误地引用了他(http://www.youtube.com/watch?v=ZeO_J2OcHYM#t=26m35s)的“零敌意”

无论如何,NullPointerTester.java似乎非常完美,所以我正试图将其构建到我的项目中

遵循依赖项(NullPointerTester->;Invokable<?, ?>,->;…例如)是很乏味的,因为我遇到了@since 14.0的类,这些类基本上属于未来的版本

为下一个/未来版本的Guava构建一个自给自足的罐子的最佳方法是什么,所有依赖项都由我负责?注意:源代码似乎是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;
}

共 (2) 个答案

  1. # 1 楼答案

    如果你克隆了整个番石榴储存库,那么v13。从13.0.1开始,0.1标签将包含guava testlib,特别是NullPointerTester,哪个应该有效