热 动漫-网站正在建设中-手机版6公司网站建设发展趋势
web/
2025/10/3 23:11:09/
文章来源:
热 动漫-网站正在建设中-手机版6,公司网站建设发展趋势,手机如何开发软件,三亚房地产网站制作Hilt 是 Android 的依赖项注入库#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行手动依赖项注入要求您手动构造每个类及其依赖项#xff0c;并借助容器重复使用和管理依赖项。依赖注入的英文是Dependency Injection#xff0c;简称DI,简单说一个类中使用的依赖… Hilt 是 Android 的依赖项注入库可减少在项目中执行手动依赖项注入的样板代码。执行手动依赖项注入要求您手动构造每个类及其依赖项并借助容器重复使用和管理依赖项。依赖注入的英文是Dependency Injection简称DI,简单说一个类中使用的依赖类不是类本身创建的而是通过构造函数或者属性方法设置的这种实现方式就称为依赖注入。 Hilt优点: 使代码解耦便于复用重构和测试 缺点:1 有些情形gradle编译不通过或编译时间较长 2 不便于他人快速接手 用法如下: project/build.gradle id(com.google.dagger.hilt.android) version 2.44 apply false
app/build.gradle
plugins {xxxid kotlin-kaptid com.google.dagger.hilt.android
}dependencies {implementation(com.google.dagger:hilt-android:2.44)kapt(com.google.dagger:hilt-android-compiler:2.44)
}
HiltAndroidApp
class HiltApp :Application() {
}
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.InjectAndroidEntryPoint
class MainActivity : AppCompatActivity() {Injectlateinit var hiltPlay: HiltPlayoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}fun click(v: View) {hiltPlay.play()}}
class HiltPlay Inject constructor() {fun play() {Log.d(HiltPlay,play hilt)}
}
点击后输出:
2023-08-29 22:44:35.411 29864-29864 HiltPlay com.kewpie.hiltplay D play hilt
使用HiltAndroidApp注解 新建继承自Application的类并添加注解HiltAndroidApp触发 Hilt 的代码生成其中包括可以使用依赖项注入的应用基类。应用容器是应用的父容器这意味着其他容器可以访问其提供的依赖项。
使用AndroidEntryPoint将依赖注入Android类。 在 Application类中设置了Hilt且有了应用级组件后Hilt 可以为带有 AndroidEntryPoint 注解的其他 Android 类提供依赖项。
Inject 注解让 Hilt 注入不同类型的实例。其实就是声明变量的时候用上这个注解
常见的依赖注入方式有:
方式1构造方法注入: 优点在构造方法中体现出对其他类的依赖一眼就能看出这个类需要其他那些类才能工作。一旦对象初始化成功了这个对象的状态肯定是正确的。 缺点造成构造函数会有很多参数。
方式2 方法参数注入 创建对象后通过自动调用某个方法来注入依赖。 优点比较灵活。 缺点新加入依赖时会破坏原有的方法签名如果这个方法已经被其他很多模块用到就很麻烦得需大量修改与构造方法注入一样会有很多参数。
方式3 Set方法注入 优点在对象的整个生命周期内可以随时动态的改变依赖非常灵活。 缺点对象在创建后不直观无法清晰地表示哪些属性是必须的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86463.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!