Java 原始函数如何使用它们

Java 原始函数如何使用它们,java,annotations,raw-types,Java,Annotations,Raw Types,您好,我有一个带有@Raw注释的应用程序。我的问题是,下面代码中的这两个函数是否因为原始注释而有效,为什么?this.setX(some.getX());或者一些.setX(this.getX()) /** *@invar… *| getX()0) 抛出新的IllegalArgumentException(); 这个.x=x; } 私人浮动x; @生的 public void someMethod(SomeClass some)抛出NullPointerException{ this.setX

您好,我有一个带有@Raw注释的应用程序。我的问题是,下面代码中的这两个函数是否因为原始注释而有效,为什么?this.setX(some.getX());或者一些.setX(this.getX())

/**
*@invar…
*| getX()0)
抛出新的IllegalArgumentException();
这个.x=x;
} 
私人浮动x;
@生的
public void someMethod(SomeClass some)抛出NullPointerException{
this.setX(some.getX());
some.setX(this.getX());
}
}

您没有指定@Raw注释来自何处,因此我假设您指的是文档中的注释:

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

代码中的函数是有效的,它们本身也可以工作。有人只是想要一些保护措施来确保他们使用的对象完全初始化

 /** 
 * @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()); 
 }
}