当前位置: 首页>>代码示例>>Java>>正文


Java LazyInit类代码示例

本文整理汇总了Java中com.google.errorprone.annotations.concurrent.LazyInit的典型用法代码示例。如果您正苦于以下问题:Java LazyInit类的具体用法?Java LazyInit怎么用?Java LazyInit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


LazyInit类属于com.google.errorprone.annotations.concurrent包,在下文中一共展示了LazyInit类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: matchSynchronized

import com.google.errorprone.annotations.concurrent.LazyInit; //导入依赖的package包/类
@Override
public Description matchSynchronized(SynchronizedTree tree, VisitorState state) {
  Symbol symbol = ASTHelpers.getSymbol(stripParentheses(tree.getExpression()));
  if (!(symbol instanceof VarSymbol)) {
    return NO_MATCH;
  }

  // TODO(cushon): check that the receiver doesn't contain mutable state.
  // Currently 'this.locks[i].mu' is accepted if 'mu' is final but 'locks' is non-final.
  VarSymbol varSymbol = (VarSymbol) symbol;
  if (varSymbol.isLocal() || varSymbol.isStatic() || (varSymbol.flags() & Flags.FINAL) != 0) {
    return NO_MATCH;
  }
  if (ASTHelpers.hasAnnotation(varSymbol, LazyInit.class, state)) {
    return NO_MATCH;
  }

  Name ownerName = varSymbol.owner.enclClass().getQualifiedName();
  if (Stream.of("java.io.Writer", "java.io.Reader").anyMatch(ownerName::contentEquals)) {
    // These classes contain a non-final 'lock' variable available to subclasses, and we can't
    // make these locks final.
    return NO_MATCH;
  }

  return describeMatch(tree.getExpression());
}
 
开发者ID:google,项目名称:error-prone,代码行数:27,代码来源:SynchronizeOnNonFinalField.java


注:本文中的com.google.errorprone.annotations.concurrent.LazyInit类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。