JavaFX教程-廣度(Extents)和列舉

梧桐雨—168發表於2008-03-18

類的“廣度”,即此類的所有例項的集合,能夠通過以下語法獲得:

 *:ClassName
例如,下面的程式碼列印出String類的所有例項:

 import java.lang.System;

 for (i in *:String) {
  System.out.println(i);
 }
注意:這是可選特性,預設情況下是失效的。

JavaFX也提供了宣告類的命名例項的能力:
 objectName:ClassName
例如:

 import java.lang.System;

 myString:String = "This is a string";

 System.out.println(myString:String);
這樣的命名例項是全域性可訪問的,但通常必須使用類名進行限制。然而,在屬性初始化程式和賦值的上下文中,表示式型別的命名例項被引入到了詞法作用域(lexical scope)(可見性弱於變數和屬性),並可以通過使用它們的無限定名(unqualified names)引用這些命名例項:

 Button {
  mnemonic: P
  text: "Press Me"
 }在上面例項中,由於Button的mnemonic屬性是KeyStroke型別的,因此我能夠通過使用它的無限定名訪問其命名值P,而在別處我將不得不使用P:KeyStroke來引用它。

JavaFX使用與Java1.5同樣的語法來訪問列舉型別值:

 import java.lang.management.MemoryType;

 var heap = HEAP:MemoryType;
 var nonHeap = NON_HEAP:MemoryType;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-209700/,如需轉載,請註明出處,否則將追究法律責任。

相關文章