덜 계산 중심의 어설 션을 항상 유지하고 높은 계산 중심의 어설 션을 비활성화하고 싶습니다. 실용적인 사용 사례는 코드를 프로덕션으로 옮길 때가 될 수 있습니다 (Pragmatic Programmer에 따르면, 이것은 어설 션을 처리하기위한 제안 된 방법입니다).Java 어설 션 제어 - 모범 사례
어설 션을 제어하는 가장 좋은 방법은 무엇입니까? ("-ea"를 사용하여 VM 변수에서 이미 어설 션을 활성화했습니다.
간단한 예 :
/**
*
* @precondition sizeOfList >= 2
*/
private ArrayList<Integer> createSortedList(int sizeOfList){
ArrayList<Integer> results = new ArrayList<Integer>();
for(int i = 0; i<sizeOfList; i++){
<algorithm to add sorted numbers to array>
}
if(<some_flag>)
assert results.get(0) < results.get(1) : "Results are not sorted.";
assert results.size() == sizeOfList : "Results-list size does not equal requested size.";
return results;
}
는 변수를 제어하는 시스템 등록 정보를 사용하는 것이 가장 좋습니다? 그렇다면 시스템 속성은 특정 클래스뿐만 아니라 전체 프로젝트에 대해 설정할 수 있습니까 (Eclipse에서)?
"상수"클래스에 정의 된 상수 변수를 사용하는 것이 더 좋은 생각입니까?
내가 생각하지 못하는 다른 방법이 있습니까? 사전에
감사합니다.
"덜 계산 집약적 인"개념과 "높은 계산 중심의 주장"의 차이점에 대해 자세히 설명 할 수 있습니까? 예를 들어 보겠습니까? – allingeek
덜 집약적 인 예는 변수에 대한 검사 일 것입니다. 예 : 'assert i <7 : "i가 7보다 작지 않습니다." 더 높은 comp 집약적 인 것은 목록의 모든 값의 평균을 확인하는 것과 같은 더 많은 처리가 필요합니다. '평균은 7보다 작습니다.'; ' 이상적으로 하이 콤포 - 집중적 인 어설 션과 생산에 작은 것들에 맡겨. – mtical