Java android实现不同api级别的方法

Java android实现不同api级别的方法,java,android,android-annotations,Java,Android,Android Annotations,我在谷歌开发者的android视频中看到,他们实现了两种方法,并通过注释定义了基于api级别应该调用什么方法 不幸的是,我再也找不到这段视频了(我不记得是哪段视频了),所以我在StackOverflow中搜索了这个问题,找到了这个: 在问题中,他使用了@apilevel注释,我找不到该注释 基本上,我想做的是: @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) private int getDisplayWidth(Display display){

我在谷歌开发者的android视频中看到,他们实现了两种方法,并通过注释定义了基于api级别应该调用什么方法

不幸的是,我再也找不到这段视频了(我不记得是哪段视频了),所以我在StackOverflow中搜索了这个问题,找到了这个:

在问题中,他使用了@apilevel注释,我找不到该注释

基本上,我想做的是:

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private int getDisplayWidth(Display display){
    Point size = new Point();
    display.getSize(size);
    return size.x;
}

@TargetApi(Build.VERSION_CODES.FROYO)
private int getDisplayWidth(Display display){
    return display.getWidth();
}
但是ADT给了我重复的方法错误。

使用:

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private int getDisplayWidth(Display display){
    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2) {
      Point size = new Point();
      display.getSize(size);
      return size.x;
    }

    return display.getWidth();
}

感谢您的回答,您在这个问题上的回答是:我理解了@TargetApi是什么。我相信实现我想要的唯一方法是使用类重载。@jonathanrz:是的,在同一个类中不可能有两个具有相同签名(名称、参数、返回类型)的方法
@TargetApi
不会改变这一点。