Rumah > Java > Menggunakan dua generik untuk melaksanakan antara muka

Menggunakan dua generik untuk melaksanakan antara muka

王林
Lepaskan: 2024-02-09 10:45:09
ke hadapan
471 orang telah melayarinya

Editor PHP Xinyi akan memperkenalkan kepada anda kaedah menggunakan dua generik untuk melaksanakan antara muka. Generik ialah ciri yang membolehkan penggunaan parameter jenis dalam bahasa pengaturcaraan, yang boleh meningkatkan fleksibiliti dan kebolehgunaan semula kod. Apabila melaksanakan antara muka, kita boleh menggunakan generik untuk menentukan jenis parameter dalam antara muka, supaya jenis data yang berbeza boleh digunakan dalam senario yang berbeza. Kaedah ini boleh menjadikan kod kami lebih serba boleh dan berskala serta meningkatkan kecekapan pembangunan. Dalam artikel ini, kami akan menerangkan secara terperinci cara menggunakan dua generik untuk melaksanakan antara muka dan memberikan kod sampel untuk rujukan anda.

Kandungan soalan

Saya mempunyai tugasan dalam kerja rumah saya tetapi saya tidak dapat mengatasinya.

Kod antara muka pengubah adalah seperti berikut:

public interface transformer<from, to> {
    to transform(from value);
}
Salin selepas log masuk

Setakat ini, kod untuk kelas personsubscribertransformer kelihatan seperti ini:

public class PersonSubscriberTransformer<FROM, TO> implements Transformer {
    private Predicate<Person> predicate;
    public PersonSubscriberTransformer(Predicate<Person> predicate) {
        this.predicate = predicate;
    }
    @Override
    public Object transform(Object value) {
        return null;
    }
  }
Salin selepas log masuk
Parameter kaedah

transform hendaklah list<person>并且它应该返回一个list<subscriber>. Apabila saya menukar parameter, saya mendapat mesej ralat yang mengatakan bahawa saya harus menarik kaedah ke antara muka pengubah.

Apakah penyelesaian untuk melaksanakan kaedah ini dengan cara yang betul?

Penyelesaian

mengikut transform 的预期签名,from 应该是 list<person>to 应该是 list<subscriberphpcngt phpcn. Kelas itu sendiri tidak seharusnya generik.

public class PersonSubscriberTransformer implements Transformer<List<Person>, List<Subscriber>> {
    // constructor...
    
    @Override
    public List<Subscriber> transform(List<Person> persons) {
        // complete this method...
        return null;
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Menggunakan dua generik untuk melaksanakan antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan