java中属性加参数_java – 具有类型参数的注释属性
我認為這是可能的,但它需要大量的語言規范的補充,這是沒有道理的。
首先,對于你枚舉的例子,你可以使用Class擴展枚舉>>選項。
Class?還有另一個問題?擴展枚舉>選項:因為Enum.class是Class&Enum>這是一個Class擴展枚舉>選項= Enum.class是合法的
這不會發生在Class>選項,因為枚舉不是枚舉的子類型,而是混亂的原始類型處理中相當意外的事實。
回到一般的問題。由于在有限的屬性類型中,Class是唯一一個具有類型參數的通配符,通配??符通常表達力足夠,您的關注不是非常值得尋求的。
讓我們進一步推廣這個問題,假設有更多的屬性類型,通配符在許多情況下都不夠強大。例如,假設允許地圖,例如
Map options();
options={"a":1, "b":2} // suppose we have "map literal"
假設我們希望一個attrbite類型是Map< x,x>任何類型的x。這不能用通配符表示 – Map意味著Map< x,y>對于任何x,y。
一種方法是允許類型為:< X> Map< X,X>的類型參數。這實際上是非常有用的一般。但這是系統的重大改變。
另一種方法是重新解釋注釋類型中方法的類型參數。
Map options();
options={ "a":"a", "b":"b" } // infer X=String
在目前的方法類型參數,推理規則,繼承規則等的理解中,這根本不起作用。我們需要改變/添加很多東西才能使其工作。
在任一方法中,如何將X傳遞給注釋處理器都是一個問題。我們必須發明一些額外的機制來攜帶具有實例的類型參數。
總結
以上是生活随笔為你收集整理的java中属性加参数_java – 具有类型参数的注释属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中websocket_Java中
- 下一篇: java aab全排列_编译原理习题课