小编nas*_*avi的帖子

匕首2中合格的方法注入

我成功地使用了合格字段注入构造注入和方法注入,我期望从匕首2.10将依赖项注入到Qualified方法中,例如以下代码:

public class MainActivity extends AppCompatActivity {

   @Override protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   DaggerMainActivityComponent.create().inject(this);
   }

  @Named("firstName")
  @Inject
  void initFirstName(String firstName){
  }

  @Named("lastName")
  @Inject
  void initLastName(String lastName){
  }

@Module public class UserModule {

   @Named("firstName")
   @Provides
   String provideFirstUserName() {
   return "Nasser";
   }

  @Named("lastName")
  @Provides
  String provideLastUserName() {
    return "Khosravi";
  }
 }

 @Component(modules = { UserModule.class})
 public interface MainActivityComponent {

  void inject(MainActivity mainActivity);

  @Named("firstName")
  String getFirstName();

 @Named("lastName")
 String getLastName();
 }
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用此代码时,我得到:
没有@Inject构造函数或@ Provides-或@ Produces-annotated方法无法提供java.lang.String。


网络上有很多关于匕首的简单教程,但它们都是相同的,我找不到有关合格方法注入的任何示例。

为什么我要方法注入?

我更喜欢方法注入而不是字段注入,因为它是:

  • 比现场注入更清晰
  • 您只需设置布雷点并调试注入的值
  • 您可以将注入的值分配给私有字段 …

java dependency-injection qualified dagger-2

5
推荐指数
1
解决办法
529
查看次数

快速将 json 解码为通用数组或类

如何在 swift 中将 json 解码为通用模型?
在java中解码json我使用GSON,一般来说我使用并不重要。在<T<E>> or ArrayList<E>swift中数组是一个结构体并且不能继承并且它没有实现Decodable。

我正在寻找一个通用的优雅类来在我的所有网络服务中使用。

我的场景:
我有 json 响应

{
"status": true,
"message": "",
"code": 200,
"response": [{
    "id": 43
}]
}
Run Code Online (Sandbox Code Playgroud)

以及来自 Web 服务的通用响应模型:

class GeneralResponse< T : Decodable >:NSObject,Decodable{

    var status = false
    var message = ""
    var code = -1
    var response : T?

    private enum CodingKeys: String, CodingKey {
        case status
        case message
        case code
        case response
    }

    required public init(from decoder: Decoder) throws{
        let container = try decoder.container(keyedBy: CodingKeys.self) …
Run Code Online (Sandbox Code Playgroud)

generics json decode response swift

3
推荐指数
1
解决办法
7076
查看次数