首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

美团的技术实力怎么样?

); 4、接口强约束: 运行时使用事件发布和订阅事件,框架自动使用事件定义的事件名和数据类型,而不需要手动输入事件名和数据类型(解决事件命名命名错误); 5、APT 生成接口: 框架在编译时使用 APT...错误示例 @EventGroup class IllegalEvent { fun illegalEvent() { } } 使用 @Ignore 注解忽略定义: 使用 @Ignore...注解提示过时: 使用 @Deprecated 注解可以标记事件为过时。...与 @Ignore 不同是,@Deprecated 修饰的或方法依然是有效的事件定义。 示例程序 // 虽然过时,但依然是有效的事件定义 @Deprecated("Don't use it.")...Flow 的 IEventFactory 工厂; 编译时检查在不同 @EventGroup 中设置相同 modulaName 且相同 eventName,但事件数据类型不同的异常。

68210
您找到你想要的搜索结果了吗?
是的
没有找到

Google挖坑后人埋-ViewBinding(上)

' Gradle plugin is deprecated....资源ID重名 由于kotlin-android-extensions是通过view的id名直接引用的,所以多个布局间的同名id,就需要手动对import进行重命名处理,而且经常会引用错误的布局文件,导致运行崩溃...Binding的命名规则是将xml文件按驼峰方式重命名后,再加上Binding作为结尾得到的,例如splash_layout.xml会自动生成一个SplashLayoutBinding的文件。...虽然这里生成了大量的XXXBinding文件,但是对编译速度的影响和生成Apk大小的影响几乎可以忽略: 未使用的XXXBinding文件会在混淆时被删除 编译器生成Binding文件的速度极快,同时是增加更新...因此,在ViewBinding中使用include的layout,有两种方式,一种是给include设置id,这样通过id就可以直接引用,代码如下所示。

2.1K20

开发一款 SDK 需要注意哪些问题

1、版本冲突 1.1、Java 版本问题 当业务方的 Java 环境是 1.8 时,如果 SDK 是使用 Java 11 编译,则调用 SDK 相关代码的地方在编译时将会报错: 文件具有错误的版本 55.0...of Kotlin....上面这类错误相信遇到的应该不少,Java 有一套自己的 JDK 判断准则,Kotlin 也有,Kotlin metadata 的版本来自 KGP 版本,也即意味着,当你的 SDK 使用高版本的 KGP...2、依赖混淆 配置 proguard-rules.pro 混淆,keep 住对外的接口与方法,混淆实现,SDK 发布时,不带上 sourceJar,外部只能查看 class 文件,进一步增加外部观摩...@Deprecated 标注方法废弃,since 标明从哪个版本开发废弃,forRemoval 标明未来将会删除该方法 注释使用 @deprecated 标注提供新的替换方法 调用效果如下,将鼠标移至方法处会提示

19610

使用 Kotlin 重写 AOSP 日历应用

,也不会在其的声明中出现 open 关键词,这样就会导致一个错误。...在意识到这个问题后,我们开始手动地将 Java 中的 import 语句粘贴到 Kotlin 代码文件中,单独对其进行转换。...据一些资料 ( "Java 和 Kotlin 的区别" 以及 "Kotlin 和 Java 在编译时间上的对比") 显示,Kotlin 的编译时间事实上比 Java 要更耗时,特别是对于从零开始的构建...此外,由于 Kotlin 是一种更为安全有效的编程语言,我们可以认为完整构建时间较慢的问题可以忽略不计。...从这个测试结果可以得出结论,与 Kotlin 应用相比,Java 应用可能具有微小的优势;然而,由于平均时间非常接近,这个差异几乎可以忽略不计。

1.1K10

【Java 基础篇】Java 注解详解

Java 注解以 @ 符号开头,后跟注解的名称, @Override、@Deprecated 等。注解可以有元素,元素以键值对的形式存储信息。...内置注解 Java 提供了一些内置注解,这些注解用于特殊的用途,告诉编译器生成警告或错误,控制序列化过程等。...@Override public void myMethod() { // 重写父方法 } 2.2 @Deprecated @Deprecated 注解用于标记方法、或字段已过时,不推荐使用...@Deprecated public class OldClass { // 的内容 } 2.3 @SuppressWarnings @SuppressWarnings 注解用于告诉编译器忽略特定类型的警告...定义一个元素 int number() default 0; // 定义另一个元素 } 上面的代码创建了一个名为 MyAnnotation 的自定义注解,它具有两个元素 value 和 number,分别设置了默认值

13820

python的warnings模块

警告消息通常用于提示用户一些错误或者过时的用法,当这些情况发生时我们不希望抛出异常或者直接退出程序。警告消息通常写入 sys.stderr,对警告的处理方式可以灵活的更改,例如忽略或者转变为为异常。...警告类别內建警告类型:描述Warning所有警告类别的基,它是 Exception 的子类UserWarning函数 warn() 的默认类别DeprecationWarning用于已弃用功能的警告...警告过滤器警告过滤器用于控制警告的行为,忽略,显示或转换为错误(引发异常)。...message 参数为警告消息,可以是 Warning 实例,在这种情况下,将忽略 category 使用 message.__class__,消息文本则为 str(message)。...这将为所有警告启用默认处理,包括默认情况下忽略的警告。要更改遇到的警告所采取的操作,只需更改传递给 -W 的参数即可, -W error。

6.7K10

15.junit测试使用及注解

assertEquals(math.add(11, 5), 16); //测试11+5是否等于16 assertEquals(math.add(3, 5), 9); //故意写个错误的加法测试...new mathDemo(); assertEquals(math.multiply(10, 5), 50); //测试10*5是否等于50 } } 在上面,我们故意写了一个错误的测试...@Override: 覆盖父方法 @Suppvisewarning: 忽略警告,比如我们定义了一个未使用的变量,或者调用一个已经被弃用的方法(通过@Deprecated声明的方法...("unused") : 告诉编译器忽略掉未定义了未使用的变量 @SuppressWarnings("unchecked") : 告诉编译器忽略 unchecked 警告信息,使用List,ArrayList...@SuppressWarnings("deprecation") : 如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。

98420

Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

Android Studio 4.0 的亮点包括:新的 Motion Editor(动作编辑器),让你的应用栩栩生;Build Analyzer(构建分析器),用来探索构建速度下降的原因;以及一众 Java...最后,我们改进了 CPU Profiler 的质量,显著降低了录制错误率。...该编辑器还与你的 Android 项目集成,为所有、方法和字段提供完整的符号补全,还有快速导航和重构。...但是,过时或错误配置的任务可能会导致更长的构建时间,不仅令人沮丧,还会拖累生产率。...-0-0-feature-plugin 启用或禁用构建功能的新选项 Android Gradle 插件具有对很多现代库(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig

2.5K20

错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )

-- 最近处理支持库 , 将所有的支持库都升级到了 28.0.0 ; implementation 'com.android.support:recyclerview-v7:28.0.0' 凡是 Kotlin...语言涉及到的支持库代码 , 出现了一堆报错 ; 二、报错分析 ---- 此处继承了 RecyclerView.ItemDecoration , 重写了 getItemOffsets 方法 ,...*/ @Deprecated public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent) {...) { } /** @deprecated */ @Deprecated public void getItemOffsets(@NonNull...解决方案 Google 在之前的支持库方法的参数中 , 没有添加 @NonNull 注解 , 在 28.0.0 版本中 , 添加了该注解 , 导致了继承不兼容的情况 ; 修改方法是将所有的参数类型都设置为非空类型

2.1K20

(一)组件治理之多仓组件化编译的一些问题

例如,A 模块的 1.0 版本引用了 B 模块 1.0 版本,调用 change 方法,该模块调用情况如下: // 1.0 版本的 A 模块,只依赖 1.0 的 B 接口模块进行编译 class A...但也不能一直兼容下去吧,对于大版本的升级,会对一些长期的 Deprecated 做删除处理,AGP 与 Android SDK 经常这么干,所以,提前检查涉及到的业务组件是非常有必要的,至少能在编译期间就检查出问题...3、kotlin 的默认参数 kotlin 的语法糖在背后做了很多事情,因为新版本对 data class 新增了个默认参数,导致使用到这个 data class 的组件报了 java.lang.NoSuchMethodError...通过 Decompile 发现, B_1.0 模块的 new 初始化在 A_2.0 没有这个构造,这是 kotlin 的一个特性,对于设置了默认参数的方法,kotlinc 会再生成一个方法,然后新增两个参数...4、Android 适配升级导致的方法找不到 我们在做 Android 适配时,可能只关注 以某个目标版本平台的适配与 运行在该版本的适配,往往会忽略掉一些曾经的 Deprecated 方法在该目标版本中可能被移除了

19320
领券