为常见的工具制作Android库

时间:2017-06-03 07:23:09

标签: java android deployment guava

我正在制作Android库,供我的项目使用,需要一些常用工具。

而且,

  1. 在我的项目中(使用Android Studio),我将Lint检查设置为@NotNull/@Nullable problems作为错误严重性。

  2. 在我的公共实用程序库中,有一个类DebugPreconditions,它涉及大量条件检查。如,

    DebugPreconditions.checkNotNull(fragment);
    Bundle bundle = fragment.getArguments();
    bundle.putString(MainActivity.ARGS_SHOP_ID, shopId);
    activity.replaceFragment(fragment, R.id.fragment_container, true);
    
  3. DebugPreconditions.checkNotNull,

    /**
     * Ensures that an object reference passed as a parameter to the calling method is not null.
     * @param <T>       the type parameter
     * @param reference an object reference
     * @return the non-null reference that was validated
     * @throws NullPointerException if {@code reference} is null
    */
    public static <T> T checkNotNull(@Nullable T reference) {
        if (reference == null) {
            throw new NullPointerException();
        }
        return reference;
    }
    

    我遇到的问题是, Android检查仍然发现存在问题可能导致NullPointerException&#39;在`fragment.getArguments()

    enter image description here

    但如果我使用Google Guava&#39;}错误通知将会消失。

    任何人都可以帮助我?

1 个答案:

答案 0 :(得分:0)

试试这个:

/**
 * Ensures that an object reference passed as a parameter to the calling method is not null.
 * @param <T>       the type parameter
 * @param reference an object reference
 * @return the non-null reference that was validated
 * @throws NullPointerException if {@code reference} is null
*/
@NotNull // <-- This is important.
public static <T> T checkNotNull(@Nullable T reference) {
    if (reference == null) {
        throw new NullPointerException();
    }
    return reference;
}

当您致电DebugPreconditions.checkNotNull时,请将返回值分配回参考变量。像这样:

fragment = DebugPreconditions.checkNotNull(fragment);