我成功地使用了合格字段注入构造注入和方法注入,我期望从匕首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。
网络上有很多关于匕首的简单教程,但它们都是相同的,我找不到有关合格方法注入的任何示例。
我更喜欢方法注入而不是字段注入,因为它是:
如何在 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)