Rumah >Java >javaTutorial >Mengapa Menggunakan `` dalam Java Generics, Terutamanya dalam Kaedah `assertThat`?
Apabila menggunakan Java generics, mungkin terdapat keadaan di mana anda memerlukan
Pertimbangkan coretan kod berikut:
Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected));
Kod ini gagal disusun kerana jenis yang tidak sepadan.
Mengubah suai tandatangan kaedah assertThat kepada:
public static <T> void assertThat(T result, Matcher<? extends T> matcher)
menyelesaikan ralat kompilasi. Ini membolehkan kaedah menerima Matcher yang sesuai dengan jenis hasil, memastikan jenis keselamatan.
Menggunakan Matcher memanjangkan T> tidak menawarkan kelemahan yang ketara. Ia memastikan bahawa Matcher yang serasi disediakan, menghalang kemungkinan pengecualian masa jalan yang disebabkan oleh jenis yang tidak sepadan.
Generik dalam kaedah assertThat membenarkan pemeriksaan jenis untuk memastikan bahawa Matcher yang disediakan sepadan kepada jenis hasil. Walaupun kelas Matcher tidak memerlukan generik, menggunakannya membantu menguatkuasakan keselamatan jenis dan mencegah kemungkinan ralat.
Atas ialah kandungan terperinci Mengapa Menggunakan `` dalam Java Generics, Terutamanya dalam Kaedah `assertThat`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!