2015-02-06 5 views
-1

new 연산자를 사용하지 않고 값을 BigDecimal으로 변환하려면 어떻게해야합니까? 예를 들어새 연산자없이 BigInteger를 BigDecimal로 변환

, 내가 좋아하는 정수 값이있는 경우 : 당신이 당신의 자신의 코드가 new 연산자를 사용하지 말아야한다는 것을 의미하는 경우

xyz= 4000.0 
+1

* new * 연산자를 사용하지 않고 * new * BigDecimal을 만들 수 없습니다 (또는 방법이있는 경우 어쨌든 새로운 BigDecimal *이 생성됩니다 - 단지 보이지 않습니다). – assylias

+0

아니요, 그렇습니다. 아래 답변을보십시오. 자바에서'new'가없는 객체를 만드는 것은 불가능합니다. – specializt

+0

'새 연산자를 사용하지 않음'은 어떤 의미인지에 따라 다릅니다. 자체 코드에서 사용하거나 내부 코드에서 사용하지 않습니다. – Jens

답변

4

사용 valueOf :

abc=4000. 

을 내가 같은 출력을 얻을합니다 . abc 경우

BigDecimal.valueOf(abc.longValue()); 

BigInteger이다.

new 코드를 사용하지 않고 객체를 만들고 싶다면 이 될 수 없습니다. BigDecimal.valueOf()은 new를 사용하여 BigDecimal 객체를 만듭니다.

+2

long value가 0에서 10 사이가 아니면 'valueOf'는 새로운 BigDecimal (...)을 반환 할 것입니다. – assylias

+0

@assylias 예 내부적으로이 funktion이 그것을 할 것입니다. 그러나 나는 OP의 질문의 의미는 그가이 코드에서 그것을 사용하지 않을 것이라고 생각한다. – Jens

0

아니요, 당신은 기본 유형으로 만 할 수 있습니다. 다른 모든 것은 객체이고 new 연산자를 사용하여 인스턴스화해야합니다. 예를 들어 valueOffor BigDecimals과 같은 팩토리 메서드로 래핑 된 예제에서는 "Under the Hood"를 사용할 수 있지만 여전히 사용 중입니다.