INNER CODE UNIT · Java
injectAttrValueMethod1
xiaojinzi123/Component · ComponentCompiler/src/main/java/com/xiaojinzi/component/AutowireProcessor.java:264
private MethodSpec injectAttrValueMethod1(TypeElement targetClass) {
MethodSpec.Builder methodBuilder = MethodSpec
.methodBuilder("injectAttrValue")
.addJavadoc("属性注入\n")
.addParameter(
ParameterSpec
.builder(TypeName.get(targetClass.asType()), "target")
.build()
)
.addModifiers(Modifier.PUBLIC);
// 如果是 Activity
if (mTypes.isSubtype(targetClass.asType(), activityTypeMirror)) {
methodBuilder.addStatement("injectAttrValue(target, target.getIntent().getExtras())");
} else if (mTypes.isSubtype(targetClass.asType(), fragmentTypeMirror)) { // 如果是 Fragment
methodBuilder.addStatement("injectAttrValue(target, target.getArguments())");
}
return methodBuilder.build();
}