2
내가 개체 배열을 생성하는 것을 시도하고있다 (개체 []) 방법 (IDescriptor)에 전달된다 :객체 배열에서 Groovy Boolean을 가져 오는 것을 방지하려면 어떻게해야합니까?
Object[] newValues = {
Boolean.TRUE
}
descriptor.setParameters(newValues)
특정 기술자는 어레이의 첫번째 값이 java.lang의 것으로 기대한다. 부울 개체입니다. 그러나 Groovy가 자체 부울 클래스로 변환하는 것처럼 보이고 코드를 실행할 때 (위 코드는 전체 코드가 아님), 배열의 첫 번째 Object가 java.lang.Boolean 객체가 아니라고보고합니다. 어떻게
assert newValues[0] instanceof java.lang.Boolean
| | |
| | false
| [email protected]
[[email protected]]
수 있습니다 : 나는 어설 션 (오류 반복)를 추가하면
org.openscience.cdk.exception.CDKException: The first parameter must be of type Boolean
at org.openscience.cdk.qsar.descriptors.molecular.AromaticAtomsCountDescriptor.setParameters(AromaticAtomsCountDescriptor.java:118)
, 나는이 오류가 :
하지 매우 유익한 것으로,이 스택 트레이스입니다 Groovy가 더 풍부한 클래스 대신 배열에서 Java Boolean 클래스를 사용하는지 확인하십시오.
쿨! 그래, 단언 오류 메시지가 나에게 그 힌트를 줘야 했어! –
내가 같은 함정에 빠졌기 때문에 나는 단지 알았다. 제 경우에는'Map x = {...}'를 사용하고 있었고 클로저는 맵처럼 작동하기 때문에 대부분의 코드가 실제로 작동했지만 어떤 이상한 경우에는 실패했습니다. –