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

成都网站建设报价52影院

成都网站建设报价,52影院,商城网站 报价 方案,logo免费设计网站有哪些Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。执行手动依赖项注入要求您手动构造每个类及其依赖项,并借助容器重复使用和管理依赖项。依赖注入的英文是Dependency Injection,简称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-kapt'id '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.Inject@AndroidEntryPoint
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.yayakq.cn/news/140633/

相关文章:

  • 网站的开发建设要做什么的成都网站开发哪家好
  • 网站psd设计稿务川自治县建设局网站
  • 江门做网站多少钱网上如何注册公司
  • 大家都用哪个网站做读书笔记谷歌推广技巧
  • 舟山网站建设制作四川建设网官网地址
  • 足球竞猜网站开发好学校平台网站模板下载
  • 网站空间密码网站面包屑导航怎么做的
  • 各国网站域名微网站建设公司
  • 西宁市网站设计公关公司电视剧
  • 上海网站排名前十浏览器正能量网站免费图片
  • 计算机网站模板黄石网站建设流程
  • 硬笔书法网站是谁做的企信网企业信息查询平台官网
  • dw做的网站怎么发布公司网站生成二维码
  • 苏州高端网站品牌推广费
  • 信息手机网站模板下载wordpress写博客插件
  • 郑州做网站公司汉狮价格中关村
  • 装饰行业网站建设方案广州工商注册查询系统官网
  • 临桂建设局网站如何进行电子商务网站推广?
  • 江苏高校品牌专业建设工程网站网络广告文案范文
  • 用别人的照片做网站重庆关键词快速排名
  • 黄山网站优化短链生成网站
  • 建设网站内容的策划书苏州微信小程序开发公司
  • 舟山市建设局网站php免费网站源码
  • 广州做网站平台太仓有专门做网站的地方吗
  • 0311网站建设kn95口罩
  • 网站开发常用的数据库网站收录是什么
  • 做网站530元网站sem
  • 做网站在哪里做网站的公司那家好
  • 怎么知道网站谁建的百度联盟app
  • 二维码短链接生成器贵州便宜网站推广优化电话