如何注释我的方法以在 Android 中返回 Visibility 类型 int? [复制]

Posted

技术标签:

【中文标题】如何注释我的方法以在 Android 中返回 Visibility 类型 int? [复制]【英文标题】:How can I annotate my method to return a Visibility type int in Android? [duplicate] 【发布时间】:2015-07-28 08:04:11 【问题描述】:

当我返回一个常规 int 并尝试将该 int 用作 Visibility-annotated int 的输入参数时,android 工作室会抱怨。如何注释我的方法以使 AS 不会产生此警告?我看到 View 有一个公共的@interface“可见性”,但出于某种奇怪的原因,即使它是公共的,我也无法从我的项目中引用 android.view.View.Visibility。为什么?

我的方法:

public static int booleanToVisibleOrInvisible(boolean visible) 
    return visible ? View.VISIBLE :  View.INVISIBLE;

我需要什么:

@android.view.View.Visibility  // <- does not compile
public static int booleanToVisibleOrInvisible(boolean visible) 
    return visible ? View.VISIBLE :  View.INVISIBLE;

【问题讨论】:

【参考方案1】:

但由于某些奇怪的原因,我无法从我的项目中引用 android.view.View.Visibility,即使它是公开的。

查看源代码,你会看到这个注解是用@hide 标签“注解”的:

/** @hide */
@IntDef(VISIBLE, INVISIBLE, GONE)
@Retention(RetentionPolicy.SOURCE)
public @interface Visibility 

@hide 标记用于从android.jar 文件中排除带注释的包/类/方法/等,因此在编译时不可用。我怀疑您是否可以在代码中以某种方式使用相同的注释,除非 Google 工程师从源代码中删除 @hide 标记。 您可以使用 //noinspection ResourceType 评论来取消此警告。

【讨论】:

哇...在 Google 中模糊了代码和 cmets 之间的界限。感谢您的提醒。 PS:我必须写@SuppressWarnings("ResourceType") 才能让它工作。 PPS:啊,另一个是内联的。 为什么那个注释竟然被隐藏了?

以上是关于如何注释我的方法以在 Android 中返回 Visibility 类型 int? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 expr 的状态存储在警报规则中以在注释中使用它?

如何从 vimeo 帐户检索视频源以在 exoplayer android 中播放?

Java:如何从第二种方法获取变量以在第三种方法中工作?

即使在离线时如何缓存网页以在我的 android 应用程序中使用

如何使用 MapKit (SwiftUI) 将工具提示添加到地图注释以在地图上显示位置名称

设置数组以在 Android 应用中保存声音