Here you can find the source of negate(Comparable v)
public static Comparable negate(Comparable v)
//package com.java2s; /* //from w w w. ja v a 2s . c o m * <copyright> * * Copyright 2002-2004 BBNT Solutions, LLC * under sponsorship of the Defense Advanced Research Projects * Agency (DARPA). * * You can redistribute this software and/or modify it under the * terms of the Cougaar Open Source License as published on the * Cougaar Open Source Website (www.cougaar.org). * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * </copyright> */ public class Main { public static Comparable negate(Comparable v) { if (v.getClass() == String.class) { throw new IllegalArgumentException("Strings cannot be negated"); } if (v instanceof Number) { Number nv = (Number) v; if (nv instanceof Double) return new Double(-nv.doubleValue()); if (nv instanceof Long) return new Long(-nv.longValue()); if (nv instanceof Integer) return new Integer(-nv.intValue()); } throw new IllegalArgumentException("Unimplemented arithmetic"); } }