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

Spring Native 中文文档

第一个选项对于在 Spring Native 无法识别库或模式时识别缺少的本机配置很有趣。 请参阅此相关的 graal#3283 问题,该问题应使此过程更加容易。...为了解决此问题,代理支持访问过滤器文件,该文件将导致某些数据从生成的输出中排除。...9.2 生成的镜像无法运行 如果生成的映像无法运行,本节介绍了一些可能的修复方案。...每个反射条目(每个构造器/方法/字段)均通过导致创建代理类native-image,因此从占用空间的角度来看,这些AOT转换允许生成更小,更优化的配置。...如果某些代码的行为以类路径上存在某个类为条件,则可以在构建映像时执行该状态检查,因为在此之后无法更改类路径。 通常通过尝试以反射方式加载类来进行状态检查。

10.5K10

前面的注解处理器教程涉及到的 Tieguanyi 框架现在怎么样了?

我们怎么去解决 其实我们仔细观察前面的代码,就会发现这两大段传参和读参的代码,都是模式化的代码,我们只需要通过注解处理器来生成就可以了,因此我们给出的解决方法是: @Builder public class...因此我们生成的 Builder 在构造时必须对他们进行赋值,而其他两个因为是 Optional,用户可以根据实际情况选择性调用。...的实例因各种原因(例如开发者选项中的”不保留活动“开启时)被销毁,从 EditUserActivity 返回时, UserActivity 被重新创建,导致之间的回调(匿名内部类、Lambda 表达式...外部 View 的实例,通常也是回调所在的 Activity 当中的 View,在更新实例时,我们通过 View 的 id 来索引,因此如果布局当中有重复的 id,回调可能将无法更新到正确的实例而产生问题...欢迎大家开 Issue,有空时我就会来迭代一下~ 其他相关 Apt-Utils:解决了类型在 Java 和 Kotlin 之间的统一性和兼容性问题,提供了注解处理器一些常用的工具方法,尤其适合同时生成

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

    【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库 ( 导入依赖 | 定义 Entity 实体类 | 定义 Dao 数据库访问对象接口 | 定义数据库实例类 )

    /** * 从数据库表中删除元素 */ @Delete fun delete(student: Student) @Update 注解 更新数据库中的数据...) @Query 注解 查询数据库中的数据 , 使用 @Query 注解修饰对应的抽象方法 ; 注解中可以设置字符串参数 , 该字符串参数就是查询的 SQL 语句 , 使用 冒号 : 可访问传入的参数...对象 , 传入 Context 上下文 , StudentDatabase 类对象 , 数据库名称 等参数 ; 然后 , 调用 RoomDatabase.Builder 对象的 build 函数 ,...id 'kotlin-kapt' 导入 Room 依赖库 和 编译时生成代码的 注解处理器 ; // 导入 Room 依赖库 implementation 'androidx.room:...* 设置该数据类对应数据库中的一张数据表, 表名为 student * 该数据库表中的数据对应一个 Student 类实例对象 */ @Entity(tableName = "student")

    48130

    如何让你的回调更具Kotlin风味

    中回调,有不少的Kotlin的小伙伴在公众号留言向我吐槽过,感觉这样的写法是直接从Java中的翻译过来的一样,完全看不出Kotlin的优势在哪。...四、DSL配置回调基本步骤 在Kotlin的一个类中实现了DSL配置回调非常简单主要就三步: 1、定义一个回调的Builder类,并且在类中定义回调lamba表达式对象成员,最后再定义Builder类的成员函数...五、揭开DSL回调配置的语法糖衣 1、原理阐述 DSL回调配置其实挺简单的,实际上就一个Builder类中维护着多个回调lambda的实例,然后在外部回调的时候再利用带Builder类返回值实例的lamba...换句话就是外部回调的函数block块会通过Builder类中成员函数初始化Builder类中回调lambda实例(在上述代码表现就是mXXXAction实例),然后当内部事件触发后,根据当前lambda...第二步: 然后打开具体某个类文件,将光标定位在具体代码生成的位置, 第三步: 使用快捷键调出Generate中的面板,选择其中的“Listener Builder”, 然后就会弹出一个面板,可以点击add

    1.6K20

    【Android】只给个泛型,如何自动初始化ViewModel与ViewBinding?这几种方案值得了解

    ,能不能直接在基类中: ViewModelProvider(this).get(VM::class.java) VB.inflate(inflater) 这样会报错的,因为运行期间泛型会被擦除也无法实例化对应的对象...混淆,这才是大问题,反射代码在混淆过程中我们需要额外的注意,因为类和成员的名称可能会被改变。如果不正确配置混淆规则,可能导致在运行时无法正确地通过名称找到相应的类、方法或字段,引发异常。...在你的代码中,你使用了auto-service库,并使用@AutoService注解和AutoService抽象类来自动生成META-INF/services文件,用于注册你的注解处理器。...这个库特别适合那些需要自动生成 Kotlin 代码的场景,比如编写编译时注解处理器(Annotation Processors)或是其他需要生成 Kotlin 代码的工具。...,但是这有点"硬编码"的意思了,一旦在基类中修改了这个变量的名字就会导致异常,如果你确保不会变动,其实也可以直接用字节码插桩或者AOP面向切面自动赋值到这两个变量中。

    36310

    Java 已老,Kotlin 或将取而代之?

    Kotlin诞生于2011年,但在去年Google宣布Kotlin成为安卓的官方开发语言之后迅速走红。Kotlin从其他JVM语言中借鉴了大量强大的功能。...Kotlin会为data类自动生成equals、hashCode、toString、copy、getter和getter(针对用var定义的属性)方法。...还可以对data类使用对象解构,将对象属性保存到变量中。 可以避免Builder类和冗余的方法重载 Kotlin支持方法的命名参数,因此在大多数情况下无需再创建Builder类。...Java通常采用builder模式和方法链来实现这一点。但在Kotlin中更简单,甚至对于非builder类也一样。 Kotlin还提供了apply这个扩展函数,能够实现相同的功能。...在lambda中修改非final的变量无需再使用hack Java支持lambda的方式是将其自动替换成匿名类,但这样就无法在lambda中改修非final的变量了。

    1.7K30

    上手使用 Room Kotlin API

    Word 类代表表中的一条记录,并且它需要使用注解 @Entity。我们使用 @PrimaryKey 注解为表定义主键。然后,Room 会生成一个 SQLite 表,表名和类名相同。...每个类的成员对应表中的列。列名和类型与类中每个字段的名称和类型一致。如果您希望改变列名而不使用类中的变量名称作为列名,可以通过 @ColumnInfo 注解来修改。...Room 会生成将数据插入数据库的全部操作,并且由于我们将函数定义为可挂起,所以 Room 会将整个操作过程放在后台线程中完成。...q=CoroutinesRoom 查询数据 为了能够查询表数据,我们这里创建一个抽象函数,并且为其添加 @Query 注解,注解后紧跟 SQL 请求语句: 该语句从单词数据表中请求全部单词,并且以字母顺序排序...比如您可以指定 Room 如何处理数据库冲突、可以通过创建 TypeConverters 存储原生 SQLite 无法存储的数据类型 (比如 Date 类型)、可以使用 JOIN 以及其它 SQL 功能实现复杂的查询

    1.6K10

    编译时注解apt kapt

    注解分类 从取值的方式来说可以分为两类:编译时注解和运行时注解。 运行时注解 使用反射在程序运行时操作。目前最著名的使用运行时注解的开源库就是Retrofit。...你可以为特定的注解,注册你自己的注解处理器。 注解处理器可以生成Java代码,这些生成的Java代码会组成 .java 文件,但不能修改已经存在的Java类(即不能向已有的类中添加方法)。...@MyClass注解的类的名称加_bindView后缀的类,其中有一个静态方法bindView val file = FileSpec.builder(getPackageName...在这里插入图片描述 四、调用 在MainActivity中调用静态方法就可以绑定View,但是由于这个类是编译时生成的,在MainActivity中其实并不知道有这个类存在,无法直接调用。...我们在生成类的时候使用“类名”+“_bindView”的方式,知道了静态方法的类名就可以使用反射执行方法了。

    1.8K20

    protobuf 2 kotlin 插件

    但是我们最近开始尝试kmp了,由于请求有一部分都是proto协议的,但是因为kmp的common层所有的类都必须是kotlin库而不能是jvm的。...所以官方proto提供的java类就没办法直接被kmp所引用到。 因为上述原因,所以我们现在急需的是一个proto插件,可以帮助我们把一个proto文件直接转化成kotlin的。...但是因为官方库缺少将proto转化成kotlin class的能力,所以我们一开始并没有直接选用它。只能去从github搜索下有没有别的更好支持的库。...将serialization和pbandk的优点结合在一起,然后生成一个非常简单的kotlin data class,从而满足kmp工程的需要。...目标也比较简单,就是把上面的proto文件,转化成一个更简单的含有kotlin serialization注解的类,然后把其中的描述文件还有继承关系都删除,只保留最简单的data class。

    50020

    About Kotlin-Kotlin中的类1About Kotlin(1)

    About Kotlin(1) 因为是从Java的角度来学习Kotlin,在Java中,类作为第一等公民。故学习Kotlin,也先从其的类开始。...Kotlin中的类 普通的类 class Kotlin中没有添加修饰符直接以class开头的都是final类。final类的意义在于JVM可能存在的优化(常量和方法内联)和防止继承的滥用。...:String,var age:Int){ } Kotlin中可以提供默认值的方式,解放了手写的代码量,及构造器模式Builder Pattern!...构建这样的对象需要写很多代码。 对应的Open类 对应上面的类,kotlin中的open类就是能够被继承的了。必须在类声明的时候使用open关键字。...//在Kotlin中,可以使用data关键字 data class User(val name:String,val age:Int) 自动生成的函数 编译器会自动的从主构造函数中根据所有声明的属性提取以下函数

    1.2K30

    【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

    配置中 , 使用 根目录下 build.gradle 构建脚本中的 直接配置 plugins 插件的方式 , 无法获取到该 androidx.navigation.safeargs 插件 , 因此放弃该方案...-- 配置完毕后 菜单栏/Build/Make 编译一下, 自动生成 FragmentBArgs.java 代码, 之后调用该自动生成的类传参 --> 中 配置完毕 参数相关配置 后 , 选择 " 菜单栏 / Build / Make " 选项 , 重新编译一下, 目的是为了 生成 FragmentBArgs.java 代码, 之后调用该自动生成的类...进行 传参 ; 生成的类在 " Navigation\app\build\generated\source\navigation-args\debug\kim\hsl\nav " 目录下 , 生成的...Bundle 在 FragmentB 中 , 首先 , 调用 FragmentBArgs#Builder() , 创建 参数创建者类 , 然后 , 调用 setNAME 和 setAGE 分别设置 参数

    56020

    聊聊AbstractProcessor和Java编译流程

    各位大佬,能不能随便给我的项目或者之前的文章点个star,苦兮兮。github.com/ 掘金文章 我:我写过一个路由跳转库,我通过了AbstractProcessor生成了路由表的注册类。...我:AbstractProcessor只能处理注解,然后根据注解通过javapoet生成一个新的java类。...在每一轮中,可以向处理器询问process在前一轮产生的源文件和类文件上找到的注释的子集。 第一轮处理的输入是工具运行的初始输入; 这些初始输入可以被视为虚拟第0轮处理的输出。...这张图应该中其实缺少了一个流程,在source -> complier的过程中就应该把我们的Processor补充上去。 ? 把两张图结合就是整个java的编译流程了。...负责路由跳转的java代码 annotation 注解 AbstractProcessor 负责生成路由表的初始化类 gradle plugin 负责收集生成的注册类,然后插桩 我们今天只说Processor

    4.7K50

    Kotlin 第二弹:Android 中 PDF 创建与渲染实践

    而在实现的过程中,大家可以见识到一些常见的 Kotlin 用法,特别的地方我会稍微讲解一下。比如难于理解的 lambda 表达式我有在代码中运用,然后文中会做比较详细的解释。...需要注意的是,PdfDocument 这个类是在 API 19 的版本中添加的,所以设备必须是 4.4 版本以上。而 PdfRenderer 是在 API 21 的版本中添加的,同样要注意。...page = document.startPage(pageInfo); //绘制页面,主要是从 page 中获取一个 Canvas 对象。...注意布局中的那个按钮,当点击按钮后将生成 PDF 文件,由于生成 PDF 比较耗时,所以在生成过程中会弹出一个进度对话框,生成成功后将消失,然后打开生成的 PDF 文件。...PDF 的渲染 上面例子中,PDF 文件的读取是依靠第三方应用实现的,现在我们要自己实现它。 文章开头的地方,已经说明了这一部分由 PdfRenderer 类来实现。官网上也有它的实现流程。

    2.4K10

    上手使用 Room Kotlin API

    Word 类代表表中的一条记录,并且它需要使用注解 @Entity。我们使用 @PrimaryKey 注解为表定义主键。然后,Room 会生成一个 SQLite 表,表名和类名相同。...每个类的成员对应表中的列。列名和类型与类中每个字段的名称和类型一致。如果您希望改变列名而不使用类中的变量名称作为列名,可以通过 @ColumnInfo 注解来修改。...查询数据 为了能够查询表数据,我们这里创建一个抽象函数,并且为其添加 @Query 注解,注解后紧跟 SQL 请求语句: 该语句从单词数据表中请求全部单词,并且以字母顺序排序。...传入 builder。...比如您可以指定 Room 如何处理数据库冲突、可以通过创建 TypeConverters 存储原生 SQLite 无法存储的数据类型 (比如 Date 类型)、可以使用 JOIN 以及其它 SQL 功能实现复杂的查询

    98730

    Android Jetpack系列 之分页库Paging3(一)

    mpp-dev-11' 如果你还不了解协程和Flow可以先移步至前两篇文章 Kotlin 协程 看这一篇就够了 Kotlin Flow 看这一篇 带你入门~ 项目示例 在官方文档中也给出了我们Paging...API接口准备 API接口我们使用 「鸿洋」大佬 「玩Android」中的查询每日一问接口 :https://wanandroid.com/wenda/list/1/json 这里我们已经写好了RetrofitService...DataSource为我们自动生成了load方法,我们主要的请求操作就在load方法中完成。...getData的方法,Pager中通过配置PagingConfig来实现特殊的定制,我们来看下PagingConfig中的参数如下: pageSize:定义从 PagingSource 一次加载的项目数...,当网络不好的时候,可以考到页面的框架,从而提升用户体验 还有一些其他参数这里就不一一介绍了,从构造方法的源码中可以看出pageSize这个参数是必填的,其他的是可选项,所以我们这里传了1 定义RecycleViewAdapter

    4.1K30
    领券