型のキャストができますか

Outline
  1. asを使う

asを使う

型のキャストは、JavaFXではasを使います。 以下の例でasが効いているのがわかります。

例:

import java.util.ArrayList;
function run(){
  var list = new ArrayList();
  list.add(9);
  list.add(10);
  list.add(11);

  for(item in list){
    println("item = {item}");
  }

  list.remove(2 as Object);
  println("list.remove(2 as Object)");
  for(item in list){
    println("item = {item}");
  }

  list.remove(2);
  println("list.remove(2)");
  for(item in list){
    println("item = {item}");
  }
}

この例はArraysListのremoveメソッドでリストから要素を削除します。 引数2をObjectとして渡すとremove(Object o) が呼び出され、 その結果、合致する要素がないので何も削除されません。 一方、キャストせずに渡すと型はIntegerとみなされ、remove(int index)が呼び出されます。 その結果、2番目(0番目から数えて)の要素が削除されます。

出力結果:

item = 9
item = 10
item = 11
list.remove(2 as Object)
item = 9
item = 10
item = 11
list.remove(2)
item = 9
item = 10


カウンター

Home