Pertanyaan yang diberi tag «generics»

Teknik Meta, yang memungkinkan untuk menunda pengaturan tipe yang dapat diandalkan untuk runtime.


7
Apa yang salah dengan obat generik Java? [Tutup]
Saya telah melihat beberapa kali di posting situs ini yang mengutuk implementasi generik Java. Sekarang, saya dapat dengan jujur ​​mengatakan bahwa saya tidak memiliki masalah dengan menggunakannya. Namun, saya belum mencoba membuat kelas generik sendiri. Jadi, apa masalah Anda dengan dukungan generik Java?
49 java  generics 


4
Apa itu penyalahgunaan obat generik?
Saat meninjau beberapa kode, saya perhatikan kesempatan untuk mengubahnya menggunakan generik. Kode (dikaburkan) terlihat seperti: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Kode ini dapat diganti oleh obat generik, seperti: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); ... } Dalam meneliti manfaat …
35 generics 

12
Apakah itu bau kode untuk menyimpan objek generik dalam wadah dan kemudian mendapatkan objek dan menurunkan objek dari wadah?
Misalnya, saya memiliki permainan, yang memiliki beberapa alat untuk meningkatkan kemampuan Pemain: Tool.h class Tool{ public: std::string name; }; Dan beberapa alat: Pedang class Sword : public Tool{ public: Sword(){ this->name="Sword"; } int attack; }; Shield.h class Shield : public Tool{ public: Shield(){ this->name="Shield"; } int defense; }; MagicCloth.h class …

3
Sistem tipe generik yang bagus
Sudah umum diterima bahwa generik Java gagal dalam beberapa hal penting. Kombinasi kartu liar dan batas menyebabkan beberapa kode serius tidak dapat dibaca. Namun, ketika saya melihat bahasa lain, saya benar-benar tidak bisa menemukan sistem tipe generik yang disukai oleh para programmer. Jika kami mengambil yang berikut sebagai sasaran desain …


1
Apa perbedaan antara <? extends Foo> dan <Foo>
Saya tampaknya memiliki kesalahpahaman tentang perbedaan antara &lt;Foo&gt;dan &lt;? extends Foo&gt;. Dari pemahaman saya, jika kita punya ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Ini menunjukkan bahwa objek tipe Foodapat ditambahkan ke daftar array ini. Karena subclass dari Foojuga bertipe Foo, mereka juga dapat ditambahkan tanpa kesalahan, seperti yang diilustrasikan oleh ArrayList&lt;Foo&gt; …
20 java  generics 

3
Antarmuka umum vs umum?
Saya tidak ingat kapan saya menulis kelas generik terakhir kali. Setiap kali saya pikir saya membutuhkannya setelah berpikir saya membuat kesimpulan saya tidak membutuhkannya. Jawaban kedua untuk pertanyaan ini membuat saya meminta klarifikasi (karena saya belum bisa berkomentar, saya membuat pertanyaan baru). Jadi mari kita ambil kode yang diberikan sebagai …

4
Siapa yang memperluas antarmuka? Dan mengapa?
AFAIK, extendskelas dan implementsantarmuka orangtua kelas saya . Tapi saya mengalami situasi, di mana saya tidak bisa menggunakan implements SomeInterface. Ini adalah deklarasi tipe generik. Sebagai contoh: public interface CallsForGrow {...} public class GrowingArrayList &lt;T implements CallsForGrow&gt; // BAD, won't work! extends ArrayList&lt;T&gt; implementsDilarang menggunakan di sini secara sintaksis. Saya …

8
Bagaimana cara menyebarkan kesadaran untuk pemrograman generik di antara anggota tim?
Saya tinggal di lingkungan, tempat orang percaya: Java generics adalah fitur yang khusus digunakan untuk penulisan pustaka dan bukan untuk pengkodean yang sebenarnya. C ++ adalah bahasa pemrograman OO; templateadalah fitur opsional dan dapat dihindari Padahal, orang-orang ini sangat bergantung pada perpustakaan yang ditulis menggunakan pemrograman generik (misalnya STL, wadah …
20 java  c++  templates  generics 



2
Apakah polimorfisme parametrik peringkat tinggi berguna?
Saya cukup yakin semua orang akrab dengan metode generik formulir: T DoSomething&lt;T&gt;(T item) Fungsi ini juga disebut parametrically polymorphic (PP), khususnya peringkat-1 PP. Katakanlah metode ini dapat direpresentasikan menggunakan objek fungsi dari bentuk: &lt;T&gt; : T -&gt; T Artinya, &lt;T&gt;berarti dibutuhkan satu parameter tipe, dan T -&gt; Tberarti ia mengambil …

3
Bagaimana obat generik diimplementasikan?
Ini adalah pertanyaan dari perspektif internal kompiler. Saya tertarik pada obat generik, bukan template (C ++), jadi saya menandai pertanyaan dengan C #. Bukan Java, karena AFAIK generik dalam kedua bahasa berbeda dalam implementasinya. Ketika saya melihat bahasa tanpa generik, itu sangat mudah, Anda dapat memvalidasi definisi kelas, menambahkannya ke …
16 c#  generics 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.