codecamp

鸿蒙OS SafeVarargs

SafeVarargs

@Documented
@Retention(RUNTIME)
@Target({CONSTRUCTOR,METHOD})
public @interface SafeVarargs

程序员断言带注释的方法或构造函数的主体不会对其 varargs 参数执行潜在的不安全操作。 将此注释应用于方法或构造函数会抑制有关不可具体化的变量 arity (vararg) 类型的未经检查的警告,并抑制有关在调用站点创建参数化数组的未经检查的警告。

除了 Target 元注解施加的使用限制外,编译器还需要对该注解类型实施额外的使用限制; 如果使用 @SafeVarargs 注释对方法或构造函数声明进行注释,则这是编译时错误,并且:

  • 声明是固定数量的方法或构造函数
  • 声明是一个既不是静态也不是最终的变量arity 方法。

鼓励编译器在将此注释类型应用于方法或构造函数声明时发出警告,其中:

  • 可变arity 参数具有可具体化的元素类型,包括原始类型、Object 和String。 (对于可具体化的元素类型,此注释类型抑制的未经检查的警告已经不会出现。)

  • 方法或构造函数声明的主体执行潜在的不安全操作,例如对变量 arity 参数数组的元素的赋值会生成未经检查的警告。 一些不安全的操作不会触发未经检查的警告。 例如,别名在

   @SafeVarargs // Not actually safe!
   static void m(List<String>... stringLists) {
     Object[] array = stringLists;
     List<Integer> tmpList = Arrays.asList(42);
     array[0] = tmpList; // Semantically invalid, but compiles without warnings
     String s = stringLists[0].get(0); // Oh no, ClassCastException at runtime!
   }

在运行时导致 ClassCastException。

该平台的未来版本可能会要求此类不安全操作出现编译器错误。

鸿蒙OS Override
鸿蒙OS SuppressWarnings
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }