檢查我的自定義類。如果我改變DoSomething的()來通用類型java
final Custom<User> _custom = new Custom<>(new TypeToken<Custom<User>.Response<User>>(){}, "");
則調試日誌:"com.application.models.Custom$Response<com.application.models.User>" serverResponse: ""
但如果DoSomething的是:
final Custom<T> _custom = new Custom<>(new TypeToken<Custom<T>.Response<T>>(){}, "");
調試日誌是:
"com.application.models.Custom$Response<T>" serverResponse: "
我有這樣的班級:
public class Main
{
public static <T> void DoSomething()
{
final Custom<T> _custom = new Custom<>(new TypeToken<Custom<T>.Response<T>>(){}, "");
}
}
//我增加了調試日誌的變量的權
public class Custom<T>
{
private TypeToken<Response<T>> _responseType; _response: null
private Response<T> _response; _response: null
private String _serverResponse; _serverResponse = null;
public Custom(TypeToken<Response<T>> responseType, String serverResponse) `responseType: "com.application.models.Custom$Response<T>" serverResponse: "`
{
this._responseType = responseType;
this._serverResponse = serverResponse;
}
public class Response<t>
{
private List<t> data = null;
public List<t> GetData()
{
return this.data;
}
}
}
這就是我所說的主要..
public class User
{
public int Id;
public void Test()
{
Main.<User>DoSomething();
}
}
你是什麼意思?由於某些原因,當我編譯T仍然通用時,我創建自定義*? – Blackbelt
我假設'主主=新用戶<>();'是一個錯字,應該是'Main main = new Main <>();',對嗎? –
Eran
是的,我更新了我的答案 –