-
Data: 2010-07-07 15:00:14
Temat: Re: Implementacja typów generycznych
Od: "Sakujami" <s...@n...gmail.to> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-10-07 Do tego nadają się samochody elektryczne
- 2025-10-07 Do Amnesty International Polska - Prośba o Pomoc Dla Prześladowanego Jacka Marcina Jaworskiego
- 2025-10-07 Nordstream
- 2025-10-07 Tusk znowu sprzyja BANKSTEROM
- 2025-10-07 Paczcie jak te cymbały piszą o szwedzkim BWP CV90
- 2025-10-07 Bydlaki kontra inflacja...
- 2025-10-07 Polska [masowo - przyp. JMJ] importuje paprykę, a polska gnije na polach
- 2025-10-07 Prokuratura stawia zarzuty komisji wyborczej za "działania nieumyślne" [OKW 7 Otwock k. Warszawy]
- 2025-10-07 USA: Wartość obiecanek fed prokuratury ustalona/udupiona aż po SCOTUS
- 2025-10-07 Ogrzewanie powietrzem
- 2025-10-07 A tutaj ktoś w ogóle zagląda?
- 2025-10-07 70km
- 2025-10-06 SMS Backup
- 2025-10-06 Warszawa => Gen AI Engineer <=
- 2025-10-06 Lublin => Konsultant ds. Wdrożeń ERP (moduł FK) <=