-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
-for-mail
From: "Sakujami" <s...@n...gmail.to>
Newsgroups: pl.comp.lang.delphi,pl.comp.programming
Subject: Re: Implementacja typów generycznych
Date: Wed, 7 Jul 2010 17:00:14 +0200
Organization: http://onet.pl
Lines: 70
Message-ID: <i124q3$nng$1@news.onet.pl>
References: <i122fi$gmf$1@news.onet.pl> <i122o8$hi3$1@news.onet.pl>
<i1231e$i8f$1@news.onet.pl>
NNTP-Posting-Host: 194.117.241.226
X-Trace: news.onet.pl 1278514819 24304 194.117.241.226 (7 Jul 2010 15:00:19 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 7 Jul 2010 15:00:19 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-RFC2646: Format=Flowed; Response
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5931
Xref: news-archive.icm.edu.pl pl.comp.lang.delphi:325033 pl.comp.programming:186007
[ ukryj nagłówki ]Użytkownik "Sakujami" <s...@n...gmail.to> napisał w wiadomości
news:i1231e$i8f$1@news.onet.pl...
> Czyli nie da się napisać funkcji max dla typu generycznego gdzie można by
> wstawić zarówno int jak i double. Czy w Javie w miejsce typu generycznego
> można wstawić tylko klasy ?
Już mówię o co mi chodzi:
W Delphi od 2009 możemy mieć:
================================================
unit Unit1;
interface
uses
Generics.Collections;
type
MyTList<T> = class(TList<T>) // TList is a class in the
Generics.Collections namespace
FItems: array of T;
protected
function GetLength: Integer;
public
function Get(Index: Integer): T;
published
property Len: Integer read GetLength;
end;
{ ScoreList derived from a TList<double>}
ScoreList = class(MyTList<double>)
end;
{ StringList derived from a TList<string>}
StringList = class(MyTList<string>)
end;
implementation
function MyTList<T>.GetLength: Integer;
begin
Result := Count;
end;
function MyTList<T>.Get(Index: Integer): T;
begin
Result := Items[Index];
end;
end.
================================================
W dpr mamy wołanie
var
Lista1: MyTList<TObject>;
Lista2: MyTList<integer>;
Lista3: MyTList<array[0..5] of char>;
begin
Lista1:=MyTList<TObject>.Create;
Lista1.Add(nil);
Lista1.Free;
Lista2:=MyTList<integer>.Create;
Lista2.Add(5);
Lista2.Free;
================================================
Widać że typy to moga być nie tylko klasy lae dowolne. W tym przypadku mamy
duplikowanie się kodu nie tylko Unit1 ale i unitu Generics.Collections. Jak
to mogło zostać zaimplementowane, w .dcu nie może być już kodu wykonywalnego
ale prekompilowany szkielet który dalej się kompiluje? A jeszcze więcej
zastanawiające gdy klasa uogólniona jest w DLL czy dokładniej mówiąc, czy
może być w BPL?
Następne wpisy z tego wątku
- 07.07.10 15:34 Krzysiek Kowaliczek
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-17 Lublin => Full Stack Java Developer <=
- 2024-07-17 Lublin => Java Full Stack Developer (+Angular) <=
- 2024-07-17 Turek => IT Project Manager (experience with C#) <=
- 2024-07-17 Warszawa => Mobile React Native Developer <=
- 2024-07-05 eSIM na czym polega
- 2024-07-15 Roaming poza unią
- 2024-07-16 Jak tanio dzwonic do Wielkiej Brytani?
- 2024-07-16 Dzień bez ICE
- 2024-07-15 Spalinówki płoną doszczętnie
- 2024-07-15 Pojemność akumulatora
- 2024-07-15 Elektryk8i dalej płoną.
- 2024-07-15 Motodziennik #284 NOWY MG HS z hybrydą oraz wraca FORD CAPRI (jako SUV)
- 2024-07-14 [FILM] SAMOCHODY ELEKTRYCZNE DO WIELKIE ŚCIEMA? TYLKO FAKTY!
- 2024-07-14 Znieczulica w narodzie
- 2024-07-13 Protect Your PC with IObit Malware Fighter Pro 11.3.0.1346 Multilingual