Java genel bir yöntem, genel tür bağımsız değişkenleri türünü zorlamak için kullanılabilir mi? | Netgez.com
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

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Incredible Tutorials

    Incredible T

    27 EKİM 2006
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014