Проверьте мой пользовательский класс. Если я изменю DoSomething() дляОбщие типы java
final Custom<User> _custom = new Custom<>(new TypeToken<Custom<User>.Response<User>>(){}, "");
Тогда лог DEBUG является: "com.application.models.Custom$Response<com.application.models.User>" serverResponse: ""
Но если DoSomething является:
final Custom<T> _custom = new Custom<>(new TypeToken<Custom<T>.Response<T>>(){}, "");
Журнал DEBUG является:
"com.application.models.Custom$Response<T>" serverResponse: "
I есть класс:
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;
}
}
}
Это где я называю Main ..
public class User
{
public int Id;
public void Test()
{
Main.<User>DoSomething();
}
}
Что вы подразумеваете под * по какой-то причине, когда я скомпилирую T еще общий, когда я создаю Custom *? – Blackbelt
Я предполагаю 'Главная main = new Пользователь <>();' является опечаткой и должен быть 'Main main = new Main <>();', right ?. –
Eran
Да, я обновил свой ответ –