240 发简信
IP属地:浙江
  • 120
    SPI (Service Provider Interface) 介绍

    SPI(Service Provider Interface),是 JDK 内置的一种服务提供发现机制,是一种策略模式的实现方式。 通过在 ClassPath 路径下的 ME...

  • 120
    用 Compose 写出一个简单界面

    用 Compose 写出一个简单界面 Compose 一些基本概念问题 Compose 独立于平台不依赖于 android 更新,可以独立发布: ConstraintLayo...

  • @有点健忘 并不是所有情况下出现了空对象,捕捉到异常,然后 return 掉就能降低损失。

    相反,有些情况下,那些就不可能为空的东西,反而为 null 了,说明就是代码写的有问题,这种情况下,最好的方法就是抛个异常,让你在开发的过程中,就看到了这个异常,然后把他改掉,而不是捕获了空异常,然后不处理就 return 掉,这样反而可能导致更加严重的运行时问题。

    关于 @NonNull 和 @NotNull 注解只能起到一个提示的作用,并没有强制检查的作用。

    Object.requireNonNull 方法说明

    Mlya 的博客 在写代码的时候, Android Studio 经常会提醒我们可以使用这个方法来进行参数非空检查, 这个方法的源码也非常简单, 如下所示: 这个方法是 Ob...

  • ```java
    /**
    * The HTTP client used for requests.
    * <p>
    * This is a convenience method for calling {@link #callFactory}.
    */
    public Builder client(OkHttpClient client) {
    return callFactory(Objects.requireNonNull(client, "client == null"));
    }
    ```

    比如,上面是 Retrofit 的接口,就使用了这个方法,如果在调用的时候传入了 null,那么在给 client 赋值的时候就会抛出异常,用户就知道我不能传入一个 null。

    Object.requireNonNull 方法说明

    Mlya 的博客 在写代码的时候, Android Studio 经常会提醒我们可以使用这个方法来进行参数非空检查, 这个方法的源码也非常简单, 如下所示: 这个方法是 Ob...

  • 我的理解就是让程序崩掉,这个更多能看到的地方是在很多库里面,是作为一种检查。就像你说的,正常情况下,不能让程序崩掉,但是如果因为NPE崩掉了,就说明程序写的有问题,这种情况下,肯定不是写个 try catch 把这个异常捕获掉,而是想办法去修复这个 NPE。

    使用 Object.requireNonNull,可以让这个崩溃更加提前、更加明确。比如,如果出现了空指针,抛异常的地方是在调用他的方法或者属性的时候,实际上程序写错的地方并不是这里,而是他的赋值的地方。所以如果我们在赋值的地方(这个赋值可能是从外部传过来的)就使用 requireNonNull 进行了检查,那么在运行的过程中,在赋值的地方就会发生崩溃,抛出的异常也是在赋值的地方,我们可能就能做出判断,是外部调用者传入了 null 或者什么原因导致了错误,这样抛出的错误就更加明确不是么。

    Object.requireNonNull 方法说明

    Mlya 的博客 在写代码的时候, Android Studio 经常会提醒我们可以使用这个方法来进行参数非空检查, 这个方法的源码也非常简单, 如下所示: 这个方法是 Ob...

  • @upupup_b989 我 flutter 用的最新的,gradle android plugin 用的 3.5

    Flutter 集成友盟移动统计(必看)

    最近项目要集成移动统计,Flutter 项目的移动统计插件并不是很多。当然提起移动统计首先想到的是友盟,毕竟友盟在圈子里的熟知度还是有的,其次的选择还有TalkingData...

  • 120
    Flutter 集成友盟移动统计(必看)

    最近项目要集成移动统计,Flutter 项目的移动统计插件并不是很多。当然提起移动统计首先想到的是友盟,毕竟友盟在圈子里的熟知度还是有的,其次的选择还有TalkingData...

  • @Dominic_b08e 我也还是报错,请问有什么解决办法么

    Flutter dio结合json_serializable请求数据并解析Demo

    前言 我们在开发中,会面临要从服务器请求数据,然后解析服务器过来的json数据,这个在android中,都有相应的的封装好的很好的插件可以做这样的事情,请求数据有okHttp...

  • 在 gradle 中加这一句就可以了,放在文件顶层

    ```groovy
    repositories {
    flatDir { dirs 'libs' }
    }
    ```

    Flutter 集成友盟移动统计(必看)

    最近项目要集成移动统计,Flutter 项目的移动统计插件并不是很多。当然提起移动统计首先想到的是友盟,毕竟友盟在圈子里的熟知度还是有的,其次的选择还有TalkingData...

  • 我试了一下,不用添加UmengSdkPlugin是可以的

    Flutter 集成友盟移动统计(必看)

    最近项目要集成移动统计,Flutter 项目的移动统计插件并不是很多。当然提起移动统计首先想到的是友盟,毕竟友盟在圈子里的熟知度还是有的,其次的选择还有TalkingData...

  • 刚好要flutter集成,非常感谢,已经集成测试成功。

    Flutter 集成友盟移动统计(必看)

    最近项目要集成移动统计,Flutter 项目的移动统计插件并不是很多。当然提起移动统计首先想到的是友盟,毕竟友盟在圈子里的熟知度还是有的,其次的选择还有TalkingData...

  • @恒刀 写错了😱

    java.lang.Integer#parseInt() 源码分析

    java.lang.Integer#parseInt() 源码分析 Integer#parseInt() 是我们经常使用的一个函数, 是 Integer 类提供的一个静态工具...

  • 120
    Flutter项目使用Gitlab的CI

    layout: posttitle: "为Flutter项目增加GitLab的CI"description: "Gitlab自带CI,文章主要讲解如何在gitlab上使用Fl...

  • 120
    Android | 一个进程有多少个 Context 对象(答对的不多)

    前言 “一个进程有多少 Context 对象?” 这是一个比较初级的问题。但是,从这个问题却可以看出面试者对Android源码是否具备最基本的认识; 如果你试图直接从网上寻找...