// public final class Gson {
// ...
// public <T> T fromJson(JsonElement json,
// Class<T> classOfT)
// throws JsonSyntaxException {
// ...
は、私はそのClass<T>
もの以外のすべてを理解しています。私はそれが次のC#の同等であると仮定します。
public sealed class Gson
{
public T FromJson<T>(JsonElement json,
System.Type Type)
{
}
}
そして、クライアントコードは次のようなものだと思います:
var gson = new Gson();
var customer = gson.FromJson<Customer>(json, typeof(Customer));
をしかし、その全体System.Type
パラメータは、冗長と思われるので、私は確認することはできませんメソッド定義内のジェネリック型パラメータT
のface
また、そのページの同じ場所にあるclass.java
は次のスニペットにありますか?
inline fun <reified T: Any> Gson.fromJson(json):
T = this.fromJson(json, T::class.java)
私は、JavaのクラスClass
がSystem.Type
に似ていることを前提としていますが、typeof(Customer)
を言いたかったのであれば、あなたはCustomer.class
を言うだろうか?あれは正しいですか?
class.java
とはなんですか?
Javaジェネリック型は実行時には使用できません。メソッドがそれらを知る必要がある場合は、それらをパラメータとして渡す必要があります。 'class.java'は、文書化されたKotlin互換性のある構造体です。 – chrylis
[クラスオブジェクト(java.lang.Class)とは何か?](http://stackoverflow.com/questions/4453349/what-is-the-class-object-java-lang-class) –
@ AndreasBrunnet関連する複製はありません。質問は一般的な消去に関するものです。 – chrylis