2013-04-20 8 views
8

java yöntem imzası dönüş türü anahtar kelimeyi uzanan bu bir:Ben benzeyen yöntem imzaları bir sürü buldum <a href="http://commons.apache.org/proper/commons-chain">commons-chain</a></p> <p>kod geçiyordu

public <CMD extends Command<K, V, C>> CMD getCommand(String commandID)

Bu nasıl imza herhangi farklıdır dan:

public Command getCommand(String commandID)

tek mantıklı sebebi ben Anlamak, tip kontrolü yapmaktı. ama yine de tasarım bakış açısından bunu yapmak için nedenini anlayamadım.

Bir java yönteminin türünde , neden kullanacağına dair bazı nedenler var mı?

cevap

4

fark üç yönlüdür:

  1. döndürülen türü (bir ham türü) yazılmış olan
  2. yöntemi türleri erişebilir belirli bir alt sınıf olabilir döndürülen türü K, V ve Cı

ve yazılan bir yöntem olarak, java tipini anlaması

değişken türüne göre yöntem için türü

Command<String, Integer, String> x = getCommand(commandID); 

veya

SomeTypedSubClassOfCommand x = getCommand(commandID); 

derleyici anlaması (yani rakam):

Bütün bu (kalıba olmadan) derlenir demektir sonuç atandı.

Command<String, Integer, String> x = ContainingClass.<CommandSubClass<String, Integer, String>>getCommand(commandID); 
+0

sayesinde:

Ayrıca, açıkça bu sözdizimi ile bir alt sınıfı belirtebilirsiniz. aradığım sadece açıklama. – shoubhik

İlgili konular