gpt4 book ai didi

java - @bind、@inject 和@override

转载 作者:可可西里 更新时间:2023-11-01 11:40:31 26 4
gpt4 key购买 nike

我是 Android 应用程序开发的初学者,我见过许多使用 @bind 和 @inject 以及默认 @override 的开源应用程序

我想知道那些是什么以及有什么区别`@Inject LessonCatalogActivityPresenter lessonCatalogActivityPresenter;

@Inject
MarketService marketService;

@Inject
ShareService shareService;

@Bind(R.id.toolbar)
Toolbar toolbar;

@Bind(R.id.sliding_tabs)
TabLayout tabLayout;

@Bind(R.id.view_pager)
ViewPager viewPager;

@BindString(R.string.title_activity_lesson_catalog)
String title;

@Bind(R.id.fab)
FloatingActionButton floatingActionButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lesson_catalog);
ButterKnife.bind(this);
initToolbar();
initTabs();
initTitle();
lessonCatalogActivityPresenter.setView(this);
lessonCatalogActivityPresenter.initialize();
}

private void initToolbar() {
setSupportActionBar(toolbar);
}


private void initTabs() {
viewPager.setAdapter(new LessonsPageAdapter(getFragmentManager()));
viewPager.setOffscreenPageLimit(OFF_SCREEN_PAGE_LIMIT);
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(this);
}

private void initTitle() {
getSupportActionBar().setTitle(title);
}

@Override
public void injectActivity(ActivityComponent component) {
component.inject(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;`

最佳答案

  • @Override 注释表示此方法存在于它的父类(super class)之一中,参见 javadoc

  • 在您的示例中,ButterKnife 使用了@Bind 注释将您的实例变量 viewPager、tabLayout.. 映射到它们各自的 UI 组件

  • 我想 @InjectDagger 使用的那个在您的服务中应用依赖注入(inject),但如果不查看类顶部的导入,我们无法确定

关于java - @bind、@inject 和@override,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36336390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com