Genel bir yöntemim var, T sınıfını nasıl alabilirim?Genel yöntemlerde genel örnek sınıf örnekleri nasıl alınır
class MyClass
{
static <T> void foo(T t)
{
// how to get T.class
}
}
t.getClass() en türetilmiş sınıf alır, ama Sınıfım durumunda çalışmaz böylece T süper sınıf olabilir. <Koleksiyon> foo (yeni ArrayList()).
diyoruz. Tür silme hakkında bilgi edinin. Yapabileceğiniz en iyi yöntem, yönteme başka bir " clazz" parametresi eklemektir. Bu durumda derleme zamanında –
'T'' '' '' 'object.class' hile yapar. Aksi takdirde, nasıl 't.getClass()'? Not; kimsenin bunun silme ile ilgili bir şey olduğunu söylemesine izin verme; T için herhangi bir sınır tanımlamadınız. –
'T'' _weak_ tipidir, ancak' getClass() '' '_strong_ türünün sınıfını döndürür. [Bu soruya bakın] (http://stackoverflow.com/questions/106336/how-do-i-find-out-what-type-each-object-is-in-a-arraylistobject) –