频道栏目
首页 > 资讯 > 其他 > 正文

通过注解约束数据类型(主要是约束int)

17-04-21        来源:[db:作者]  
收藏   我要投稿

通过注解实现对int数据类型的约束,以适应我们具体的业务需求

例如:

public abstract class BaseTitleFragment extends BaseFragment {

    TitleBar mTitleBar;

    @Override
    protected int getLayoutId() {
        return R.layout.fragment_base_title;
    }

    @Override
    protected void onBindViewBefore(View root) {
        super.onBindViewBefore(root);
        // on before onBindViewBefore call
        ViewStub stub = (ViewStub) root.findViewById(R.id.lay_content);
        stub.setLayoutResource(getContentLayoutId());
        stub.inflate();
    }

    @Override
    protected void initWidget(View root) {
        super.initWidget(root);
        // not null
        mTitleBar = (TitleBar) root.findViewById(R.id.nav_title_bar);
        mTitleBar.setTitle(getTitleRes());
        mTitleBar.setIcon(getIconRes());
        mTitleBar.setIconOnClickListener(getIconClickListener());
    }

    protected abstract @LayoutRes int getContentLayoutId();

    protected abstract @StringRes int getTitleRes();

    protected @DrawableRes int getIconRes() {
        return 0;
    }


}

其中@LayoutRes、@StringRes 、@DrawableRes 就是对int类型的约束,返回符合我们具体要求的int类型值,这就实现了我们需要的是int类型的资源id,而不是一个普通的int类型值

再如,我们可以使用注解来约束我们的方法参数

public void init(@DrawableRes int resId, @StringRes int strId, Class clx) {
        mIconView.setImageResource(resId);
        mTitleView.setText(strId);
        mClx = clx;
        mTag = mClx.getName();
    }

这样int就不在是一个单纯的int类型值,而是一个资源id,通过这个资源id来给我们的控件设置数据

相关TAG标签
上一篇:Java设计模式之策略模式
下一篇:设计模式—单例设计模式总结
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站