: Yukarıdaki kod snippet'indeBu kod parçasını C# kodu açısından açıklar mısınız? <a href="https://kotlinlang.org/docs/reference/idioms.html#convenient-form-for-a-generic-function-that-requires-the-generic-type-information">Kotlin documentation</a> sayfasından
// public final class Gson {
// ...
// public <T> T fromJson(JsonElement json,
// Class<T> classOfT)
// throws JsonSyntaxException {
// ...
, bunu Class<T>
şey dışında her şeyi anlıyorum.
public sealed class Gson
{
public T FromJson<T>(JsonElement json,
System.Type Type)
{
}
}
Ve böyle birşey söyledin istemci kodu:: Ben şu C# eşdeğer olduğunu varsayalım
var gson = new Gson();
var customer = gson.FromJson<Customer>(json, typeof(Customer));
Ama bu bütün System.Type
parametre içinde gereksiz görünüyor çünkü emin olamaz Metot tanımında jenerik tip parametresi T
'un yüzü.
Ayrıca, bu sayfada aynı konumda, aşağıdaki snippet'te class.java
nedir?
inline fun <reified T: Any> Gson.fromJson(json):
T = this.fromJson(json, T::class.java)
Java sınıfı Class
Eğer typeof(Customer)
söylemek istediğim eğer öyleyse System.Type
benzer olduğunu varsayalım, sen Customer.class
derdim? Bu doğru mu?
class.java
nedir?
Java genel türleri çalışma zamanında kullanılamaz. Yöntem bunları bilmesi gerekiyorsa, bunları parametre olarak geçirmelisiniz. Ve class.java' iyi belgelenmiş bir Kotlin uyumluluk yapısıdır. – chrylis
Olası yinelenen [Sınıf nesnesi nedir (java.lang.Class)?] (Http://stackoverflow.com/questions/4453349/what-is-the-class-object-java-lang-class) –
@ AndreasBrunnet İlgili bir kopya değil; soru genel silme ile ilgilidir. – chrylis