原始函数如何使用它们

时间:2013-12-11 21:51:41

标签: java annotations raw-types

嗨,我的应用程序带有@Raw注释。我的问题是,如果以下代码中的这两个函数是有效的,因为RAW注释和为什么? this.setX(some.getX());或some.setX(this.getX());

 /** 
 * @invar … 
 * | getX() <= 0 
 */ 
public class SomeClass { 
 @Raw 
 public float getX() { 
 return this.x; 
 } 
 public void setX(float x) throws IllegalArgumentException { 
 if (x > 0) 
 throw new IllegalArgumentException(); 
 this.x = x; 
 } 
 private float x; 
 @Raw 
 public void someMethod(SomeClass some) throws NullPointerException { 
 this.setX(some.getX()); 
 some.setX(this.getX()); 
 }
}

1 个答案:

答案 0 :(得分:0)

你没有指定@Raw注释的来源,所以我假设你的意思是checker framework.来自文档:

  

此类型限定符属于用于跟踪的原始类型系统   初始化。这种类型系统不是单独使用,而是在   与其他想要确保安全的类型系统相结合   初始化。例如,NullnessRawnessChecker使用rawness来   跟踪NonNull字段的初始化。

代码中的函数是有效的,也可以自行运行。有人只是想要一些安全措施来确保他们使用的对象已经完全初始化。