typedef v jave / ako dedit z Integer, Long ...

Robert Novotny robert.novotny na upjs.sk
Pátek Únor 20 17:09:42 CET 2009


Teda chapem to spravne, sluzi to na to, aby si pouzivatel nepomylil  
poradie parametrov.

Toto sa v Jave neda, jedine riesenie je to obalit do triedy, teda urobit
triedu s jednou instancnou premennou.

public class DocumentID {
    private long value;
    // konstruktory, gettre, settre
}


public class OtherID {
    private long value;
    // konstruktory, gettre, settre
}

public void foo(DocumentId doc, OtherID oth) {
}

RN

On Fri, 20 Feb 2009 17:04:09 +0100, Dusan Zatkovsky <msk.conf na gmail.com>  
wrote:

> On Friday 20 of February 2009 16:52:37 Tomas Hubalek wrote:
>> Muzes spis ukazat nejake pouziti?
>
> Parametre "ochranene" typmi, kompilator vyhlasi chybu:
>
> typedef long DocumentID;
> typedef long OtherID;
>
> void foo ( DocumentID doc, OtherID oth ) {
>
>     // ...
>
> }
>
> DocumentID did = 1;
> OtherID oid = 2;
>
> foo ( did, oid );
> foo ( oid, did );	// kompilator povie fuck
>
> ---
>
> Holy long, kompilator to skompiluje a kod bude robit nezmysly:
>
> long did = 1;
> long oid = 2;
>
> foo ( did, oid );
> foo ( oid, did );
>
>
>
>



-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



Další informace o konferenci Konference