PRE-PROPOSAL: Simple operator overloading. (original) (raw)
Daniel Cheng j16sdiz at gmail.com
Thu Mar 26 02:25:28 PDT 2009
- Previous message: PRE-PROPOSAL: Simple operator overloading.
- Next message: PRE-PROPOSAL: Simple operator overloading.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Mar 26, 2009 at 5:00 PM, Vilya Harvey <vilya.harvey at gmail.com> wrote:
You're right, I hadn't considered widening conversions. You really want multiple dispatch in order to solve this elegantly, but somehow I don't see that being added to java anytime soon. :-) So I guess that leaves two options (for the interface-based approach): you could throw ClassCastException, forcing the user to do the conversion themselves; or you could do something like this with generics:
interface Addable<R, T> { R add(T val); } class BigInteger implements Addable<BigInteger, BigInteger>, Addable<BigDecimal, BigDecimal> { ... } class BigDecimal implements Addable<BigDecimal, BigInteger>, Addable<BigDecimal, BigDecimal> { ... }
Interface with generic is the same interface. -- and you can't implement same interface twice.
I don't want to talk about generic Type Erasure, it's a PITA.
I admit that doesn't look too elegant anymore, but I think it addresses the issue. Do you see any other problems there that I've overlooked?
Cheers, Vil. Sent from my iPod [...]
- Previous message: PRE-PROPOSAL: Simple operator overloading.
- Next message: PRE-PROPOSAL: Simple operator overloading.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]