2015-01-21 80 views
-2

特別是我指的是這段代碼,我試圖根據Class對象理解它在做什麼。什麼是C#中的Java類的等價物?

在下面的代碼中,Class是什麼意思?它與C#中的'Type'相同嗎?

另外isSuperTypeOf()方法在'類類型'方面做了什麼?他們寫這個方法的方式我不知道哪個'type'屬性是哪個。本文檔 Dynamic Object Model

class PropertyType { 

protected String name; 

protected Class type; 

protected boolean isMandatory; 

... 

public String getName() { 

return name; 

} 

public boolean isSupertypeOf(Class type) { 

return type.isAssignableFrom(type); 

} 

public boolean isValidValue(Object value) { 

// check value, possibly delegate to a strategy 

} 

... 

} 
+4

您正在查找文檔。 – SLaks 2015-01-21 03:41:22

+0

在C#中,傳遞給isSupertypeOf方法的類型變量聲明會「隱藏」類中聲明的類型字段。 – 2015-01-21 03:42:42

回答

4

Class是什麼意思?是否與C#中的Type相同?

是的,System.Type的.NET相當於Java java.lang.Class

另外isSuperTypeOf()方法在Class type方面做了什麼?

isSuperTypeOf方法爲isAssignableFrom方法提供包裝。它在C#中的等價物是,毫不奇怪,IsAssignableFrom方法System.Type

也許爪哇Class和.NET的Type之間的最大區別在於Class是它所代表的類型通用,而Type不是一個泛型類。這種差異背後的原因與Java和.NET泛型的實現方式有所不同:Java的實現基於類型擦除,因此具有泛型的特性在.NET的實現方案中提供了一些不必要的好處。

1

中的代碼

源是C#中的最接近的比喻是類型。它表示關於對象類型的元數據。但是,Java和C#反射機制之間存在很多差異。