Tony the Pony Tony the Pony - 28 days ago 7
Java Question

Java: How to set a default for "T" in SomeClass<T>?

Is there a way to specify a default type for a generic template?

Let's say I have a

Monkey
class. Monkeys can live in different
Environment
s, such as
Jungle
or
Zoo
:


public class Monkey<T extends Environment>
{
T home;
...

public T getHome()
{
return home;
}
}


Is there a way to specify a default for
T
, so I can use the type
Monkey
instead of
Monkey<?>
without getting a compiler warning?

EDIT

In other words, is there a way to get rid of the "raw type" warning without having to explicitly suppress it?

Answer

No, you can't do that. Generic parameters don't have default values. You could re-organize your type hierarchy so that there's a GenericMonkey and a DefaultMonkey that sets the generic parameter to your desired default.

Comments