2013-12-11 7 views
0

안녕하세요, 저는이 응용 프로그램에 @Raw 주석을 사용하고 있습니다. 내 질문은, 아래의 두 함수가 RAW 주석과 WHY 때문에 유효하다면? this.setX (some.getX()); 또는 some.setX (this.getX());Raw 함수 사용 방법

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

답변

0

당신은 @Raw 주석에서 오는 위치를 지정 해달라고, 그래서 당신이 문서부터 checker framework.을 의미 가정합니다 :이 유형의 규정이 추적의 생 것임 형 시스템에 속하는

초기화. 이 유형 시스템은 자체적으로 사용되지 않고 초기화를 보장하려는 다른 유형 시스템과 함께 과 함께 사용됩니다. 예를 들어, NullnessRawnessChecker는 원시를 사용하여 NonNull 필드의 트랙 초기화 을 초기화합니다.

코드의 함수가 유효하며 그 자체로도 작동합니다. 누군가는 사용하고있는 객체가 완전히 초기화되었는지 확인하기 위해 몇 가지 안전 장치를 원했습니다.