如何使用另一个 class 的 IntDef 注释
How to use IntDef annotation from another class
我正在尝试使用 android.content.pm.ActivityInfo
中的 @ScreenOrientation
。它的声明:
@IntDef({
SCREEN_ORIENTATION_UNSPECIFIED,
SCREEN_ORIENTATION_LANDSCAPE,
...
})
@Retention(RetentionPolicy.SOURCE)
public @interface ScreenOrientation {}
我这样使用编译器无法解析:
public abstract class ActivityBase extends ActionBarActivity {
@ScreenOrientation
protected abstract int getPhoneOrientation();
}
import android.content.pm.ActivityInfo.*;
没有帮助。
@android.content.pm.ActivityInfo.ScreenOrientation
也无济于事。
我在 gradle 文件中有注释库
compile 'com.android.support:support-annotations:22.0.0'
完全有可能还是注释只是以某种方式隐藏了?
注释确实被隐藏了——如果你看一下ActivityInfo
(当前第 313 行):
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/content/pm/ActivityInfo.java
您会看到上面有一个 @hide
注释,因此我们无法在我们的应用程序中直接使用它。
我正在尝试使用 android.content.pm.ActivityInfo
中的 @ScreenOrientation
。它的声明:
@IntDef({
SCREEN_ORIENTATION_UNSPECIFIED,
SCREEN_ORIENTATION_LANDSCAPE,
...
})
@Retention(RetentionPolicy.SOURCE)
public @interface ScreenOrientation {}
我这样使用编译器无法解析:
public abstract class ActivityBase extends ActionBarActivity {
@ScreenOrientation
protected abstract int getPhoneOrientation();
}
import android.content.pm.ActivityInfo.*;
没有帮助。
@android.content.pm.ActivityInfo.ScreenOrientation
也无济于事。
我在 gradle 文件中有注释库
compile 'com.android.support:support-annotations:22.0.0'
完全有可能还是注释只是以某种方式隐藏了?
注释确实被隐藏了——如果你看一下ActivityInfo
(当前第 313 行):
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/content/pm/ActivityInfo.java
您会看到上面有一个 @hide
注释,因此我们无法在我们的应用程序中直接使用它。