Если вы потенциально можете добавить в карту A<T>
разнородных типов, карту необходимо объявить как с подстановочным знаком:
private HashMap<String, A<?>> map = new HashMap();
Затем вы получите значение из карты, таким образом :
// The cast was only necessary because A by itself is a raw type.
HashMap.Entry<String, A<?>> pair = it.next();
A<?> a = pair.getValue();
Future<?> future = a.getFuture();
// Note that future.get() yields an Object
И поместите его в карту, например:
public void doSomething(Future<?> future, String id){
...
A<?> a = new A<>(future, null);
map.put(id, future);
...
}
Если вам нужен T
возвращаемый тип будущего в doSomething
, вы можете объявить переменную типа по методу:
public <T> void doSomething(Future<T> future, String id){
Сначала создайте свой метод действия для контроллера как это:
public ActionResult Profile(string userName)
{
// Do What you want with the userName
throw new System.NotImplementedException();
}
Затем создайте новый маршрут в своем global.asax файле для обработки somesite.com/members/{имя пользователя} как это:
routes.MapRoute(
"Profile",
"members/{username}",
new { controller = "Members", action = "Profile", userName = "" }
);
Именно. Я не уверен, что Вы называете контроллером, который разместит метод действия. Я принял участников.