在我写的一些接口中,我想用多个字符命名泛型类型参数,以使代码更具可读性.
就像是....
Map<Key,Value>
Run Code Online (Sandbox Code Playgroud)
而不是......
Map<K,V>
Run Code Online (Sandbox Code Playgroud)
但是当涉及到方法时,类型参数看起来像java-classes,这也令人困惑.
public void put(Key key, Value value)
Run Code Online (Sandbox Code Playgroud)
这看起来像Key和Value是类.我发现或想到了一些符号,但没有像Sun的惯例或一般的最佳实践.
我猜测或发现的替代品......
Map<KEY,VALUE>
Map<TKey,TValue>
Run Code Online (Sandbox Code Playgroud) 与这样的方法声明有什么区别:
public <T extends SomeClass> void doSomething(T obj)
{
// Do something.
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
public void doSomething(SomeClass obj)
{
// Do Something.
}
Run Code Online (Sandbox Code Playgroud)
我看到它的方式,它们都指定传入的对象必须是类型的子类SomeClass,那么为什么在这个实例中根本没有使用泛型呢?