📜  如何通过注释改进你的 Android 编码?

📅  最后修改于: 2022-05-13 01:55:37.343000             🧑  作者: Mango

如何通过注释改进你的 Android 编码?

注释是一种元数据。另一方面,元数据是提供有关其他数据的信息的数据集合。在 Android 中有多种使用注解的方法。但是,在本节中,我们将讨论如何利用注释来改进我们的 Android 编码。正式地,Android 已经有支持注释,您可以通过如下所示的依赖项来合并这些注释

compile ‘com.android.support:support-annotations:latestVersionHere’

在这里,我们正在讨论一些很棒的注释,它们肯定会对您有所帮助。

Nullness 的注解

注释@Nullable 和@NonNull 用于验证变量、参数甚至返回值是否为空。

  • @Nullable:此类表示可以为空的变量、参数或返回值。
  • @NonNullable:不能为空的变量、参数或返回值。
Java
@NonNull
public View aFunction(@Nullable String gfg1, @NonNull String gfg2) {
 // gfg1 can be null
 // gfg2 cannot be null
 // a non null view is required as a return
}


Java
View view = aFunction("Spandan", null);


Java
public void setText(@StringRes int gfgResID) {
  // gfgResID is a string.
}


Java
someTextView.setText(30);


Java
@SomeWorkerThread
public void aFunction(){
  // this is the method being called
}


Java
public void setBeta(@IntRange(from=10,to=200) int beta) {}


Java
@RequiresPermission(Manifest.permission.SET_WALLPAPER)
public abstract void functionForWallPaper(Bitmap gfgLogo) throws IOException;


结果,当您调用此函数,如下所示。在代码检查过程中,Android Studio 会告诉您 gfg2 不应为空值。



Java

View view = aFunction("Spandan", null);

资源注释

由于 Android 对资源(例如 drawable 和文本资源)的引用以整数形式提供,因此必须验证资源类型。期望参数对应于某种类型的资源(例如 Drawables)的代码可以传递预期的 int 引用类型。

Java

public void setText(@StringRes int gfgResID) {
  // gfgResID is a string.
}

然后像下面这样调用这个方法:

Java

someTextView.setText(30);

如果参数中未给出 R.字符串,则注释会在代码检查期间发出警告。

线程注释

线程注释确定是否从要调用它的线程类型调用方法。

支持的注释包括:



  • @BinderThread
  • @工人线程
  • @主线程
  • @AnyThread
  • @UiThread

如果你写这样的东西:

Java

@SomeWorkerThread
public void aFunction(){
  // this is the method being called
}

具有值约束的注释

当我们需要限制参数时,我们可以使用@IntRange、@FloatRange、@Size注解来检查提供参数的值。当方法的调用者可能提供不正确的值(超出指定范围)时,这些会很有帮助。在以下示例中,@IntRange 注释保证提供的整数值必须在 10 到 200 的范围内。

Java

public void setBeta(@IntRange(from=10,to=200) int beta) {}

有权限的注释

要验证方法调用者的权限,请使用 @RequiresPermission 批注。以下示例中对setWallpaper()函数进行了注释,以保证该方法的调用者具有权限。

使用 SET WALLPAPERS 的权限

如果您在清单中没有适当权限的情况下调用此方法,则会出现警告。

Java

@RequiresPermission(Manifest.permission.SET_WALLPAPER)
public abstract void functionForWallPaper(Bitmap gfgLogo) throws IOException;

结论

到此我们结束我们的讨论,您可以阅读门户网站上发布的其他很棒的 GfG 文章,希望这篇文章可以帮助您找到使用 Android Annotations 的方法!