2015-01-08 60 views
1

我只想檢查這是不可能的/如果Java可以使用。我開始製作可用於有界字符串系列的Java版本的模板(即泛型類)。有什麼方法可以用Java在擴展中設置上限

public abstract class BoundedNameType<U extends Integer> extends NameType 
    { 
     private static final MAX_LEN = U; 

     private BoundedNameTypes(final String... parameters){ 

      super(MAX_LEN, parameters); 

     } 

    }//BoundedNameType 

其中父類使用U作爲MAX_LEN的值,例如,

public abstract class NameType 
    { 

     private NameType(final Integer u, final String... parameters){ 

      this.maxLen = u; 
     } 

    }//NameType 

也許去一個更好,使MAX_LEN是抽象的保護,所以我並不需要一個「MAXLEN」成員和最大值可以隨時靜態決賽。我的努力和閱讀表明,Java中的泛型只是類型的,所以它不應該工作。我已經把鏈接放下了,現在是時候使用聲明來做到這一點;我仍然想知道是否有更嚴格的泛型方法來做到這一點!?或者確定的答案是「否」。

參見:

+1

U不是一個值,它是一種類型... – assylias

回答

4

這是不可能在Java中。通用參數必須是類型。

Java泛型只是表面上類似於C++模板。

+0

感謝您確認這一點。 – will

相關問題