Java android实现不同api级别的方法
我在谷歌开发者的android视频中看到,他们实现了两种方法,并通过注释定义了基于api级别应该调用什么方法 不幸的是,我再也找不到这段视频了(我不记得是哪段视频了),所以我在StackOverflow中搜索了这个问题,找到了这个: 在问题中,他使用了@apilevel注释,我找不到该注释 基本上,我想做的是: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){
@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
不会改变这一点。