当前位置: 首页 > news >正文

Android Hilt教程_构造函数

一 @Inject 后面为什么需要加上constructor()

在 Kotlin 中,@Inject constructor() 主要用于 依赖注入,告诉 Hilt 如何创建 SomeClass 的实例。


1. 为什么 @Inject 需要加 constructor()

在 Kotlin 里,constructor()显式声明主构造函数 的方式,而 @Inject 只能标注 构造函数,不能直接标注类名。

例如:

class SomeClass @Inject constructor() { fun doSomething() = "Hello Hilt!"
}

这里 @Inject constructor() 表示:

  • Hilt 需要通过这个构造函数来创建 SomeClass 的实例
  • Hilt 发现 @Inject 后,会自动提供 SomeClass 的对象,无需手动创建。

2. 如果不加 constructor 会怎样?

如果尝试这样写:

class SomeClass @Inject {  // ❌ 语法错误fun doSomething() = "Hello Hilt!"
}

会直接 编译错误,因为 @Inject 必须作用于构造函数,而 constructor 是构造函数的 显式声明方式


3. constructor 省略的情况

当类没有显式的 constructor 关键字时,它默认是 无参构造函数

class SomeClass {fun doSomething() = "Hello!"
}

但如果要让 Hilt 注入实例,必须 显式@Inject constructor()


4. 带参数的情况

如果 SomeClass 依赖其他类,比如 AnotherClass,Hilt 也能自动提供:

class AnotherClass @Inject constructor()class SomeClass @Inject constructor(private val anotherClass: AnotherClass) {fun doSomething() = "Using ${anotherClass.toString()}"
}

Hilt 会先创建 AnotherClass,然后再创建 SomeClass 并把 AnotherClass 传进去。


总结

@Inject constructor() 是 Hilt 依赖注入的核心,告诉 Hilt 如何实例化一个类。
不能直接写 @Inject,必须加 constructor()
如果类有依赖,Hilt 会自动提供并注入参数

这样,Hilt 就能帮们自动管理 SomeClass 的创建,而不需要手动 new SomeClass() 了!

http://www.dtcms.com/a/586489.html

相关文章:

  • 花都个性设计商城网站建设wordpress 优酷插件
  • NCP13992中文版手册 工作原理
  • 网站建设三亚做一个网站得多少钱
  • 11.8 脚本网页 星际逃生
  • 用数据库做学校网站做ic芯片的要去哪个网站
  • 石油大学网页设计与网站建设天津塘沽爆炸视频
  • 建设银行反钓鱼网站影视网站怎么建设
  • leetcode 1611
  • 可信网站多少钱网站建设 网络科技
  • 电容充电:电子在极板上“分家囤货”,靠电场把电能“锁”起来
  • 做网站前怎么写文档phpcms模板下载
  • 在哪里创建网站平台自己的电脑如何做网站
  • 做一个网站要多少钱wordpress 短信通知
  • 太原网站优化哪家专业网站字体选择
  • 知识图谱之——图数据库:以“关系”为核心的数据新大陆
  • doris通过外部表同步数据
  • 做网站视频存储在哪里网页设计与制作课件张松炎
  • 做网站dwshopex 如何看 网站后台
  • 网站建设要做哪些工作室想开个网站怎么做
  • Trie树相关算法题java实现
  • (根号分治)nfls #1982 倍数点更新 题解
  • 哪个网站注册域名便宜中小企业网站建设济南兴田德润电话
  • 深圳 网站建设 销售seo的中文含义是
  • ui网站建设wordpress视频设置方法
  • asp网站后台产品管理中增加一个功能怎样修改微信小程序怎么收费
  • 做网站应该画什么图合肥市城乡城乡建设局网站
  • 仓颉编程语言中的Option类型与模式匹配深入解析
  • 达梦数据复制软件DMDRS
  • 做一年的网站维护价格培 网站建设方案 doc
  • 网站地图添加合肥免费做网站