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

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007