Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Sun, 24 Jul 2011 12:54:49 -0500 Date: Sun, 24 Jul 2011 10:54:44 -0700 From: Patricia Shanahan User-Agent: Mozilla/5.0 (Windows NT 5.2; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Arithmetic overflow checking References: <015aeb15-57db-48ab-9cd4-77f8448b632f@w24g2000yqw.googlegroups.com> <09fe171s46ilvq9qmn254dctunm6noh0ps@4ax.com> <4e262731$0$314$14726298@news.sunsite.dk> <4e26300b$0$309$14726298@news.sunsite.dk> <4e26b4ed$0$2501$db0fefd9@news.zen.co.uk> <4e28097f$0$2533$da0feed9@news.zen.co.uk> <7a23c9d2-508f-4dbd-af91-8cdf2a9764e1@p29g2000pre.googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Lines: 27 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 70.230.200.239 X-Trace: sv3-dN7RdAKatstmo9vfsPsqg/NBqJoEY12FfB43dxFdiD3R7NEjtjfX88+gEHtVlxD8Fc7CLW/hwD5xR/U!YayZ+Mje8lvathfznt0Lcy+Ev/1f4lHrE33UHxws0kBAKityZEhjEaCPvV6nikEeVnIf9LKCgQj6!p3PFb8t6AcHbbMB91SvD+RQ8zR3gH1eZNtVq6CubpmXJ1I8= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 3121 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:6513 On 7/24/2011 10:40 AM, markspace wrote: > On 7/24/2011 9:16 AM, Patricia Shanahan wrote: >> I think it might be better to create a marker interface >> java.math.Arithmetic. I do like the idea of a fixed mapping from >> operators to method names that are normal identifiers. > > > I'd be concerned that a marker interface could be abused. > > public abstract class BaseNumber extends Number { > public abstract BaseNumber add( Number n ); > public abstract BaseNumber subtract( Number n ); > public abstract BaseNumber mul( Number n ); > public abstract BaseNumber[] div( Number n ); > public abstract BaseNumber modulo( Number n ); > } > > Then restrict operator overloading to a class like BaseNumber and its > subclasses. Some classes in the existing Java API like BigDecimal may > need to also extend BaseNumber. Whatever is done can, and will, be abused. People will just make their non-arithmetic classes for which they want "+" extend BaseNumber, and meanwhile complex would be forced to provide a meaningless conversion to byte. Patricia