SORU
13 Mayıs 2015, ÇARŞAMBA


Java genel bir yöntem, genel tür bağımsız değişkenleri türünü zorlamak için kullanılabilir mi?

Bir yöntem bağımsız değişkenleri, bu gibi: aynı türde olduğundan emin olmak için genel bir tür kullanmak istiyorum

public static <T> void x(T a, T b)

Bu yönteme geçirilen iki bağımsız değişkeni (a ve b), her zaman aynı türden olması gerekir sanıyorum. Ama benim için sürpriz, herhangi bir tür (hatta ilkel) x, T Nesne silinirse, geçirilen bağımsız değişkenler ne olursa olsun yöntem için bağımsız değişken geçebildim.

Bu sadece geçici bir çözüm bulmak şimdiye kadar, kullanılması olduğunu buldum 'uzanır' bu gibi:

public static <T, U extends T> void x(T a, U b)

Ama bununla yaşayabilirim, ancak istediğim bu değil.

Bir yol bir yöntem tür bağımsız değişkenleri zorlamak için genel bir tür var mı acaba?

CEVAP
13 Mayıs 2015, ÇARŞAMBA


Bildiğim kadarıyla eğer doğru bir şekilde yapmak için explicitly specify the type of T yerine izin derleyici gerçekleştirip kendi türü için en doğrudan üst durumda iki farklı nesne türleri olmak geçirilen bağımsız değişken olarak. Örneğin: böyle bir şey al

public class Test {
    public static void main(String[] args) {
        Test.x(5.0, 5);          // This works since type is inferred to be Number
        Test.<Integer>x(5, 5);   // This works since type is stated to be Integer
        Test.<Integer>x(5.0, 5); // This doesn't; type is stated to be Integer and Double is passed in
    }

    public static <T> void x(T a, T b) {
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chanre Joubert

    Chanre Joube

    27 Temmuz 2012
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • Myron and Nejusha dance

    Myron and Ne

    2 AĞUSTOS 2012