import java.util.Enumeration fun java.util.Enumeration.iterator() = object: Iterator { override fun hasNext(): Boolean = hasMoreElements() override fun next() = nextElement() } trait MyIterator { fun hasNext() : Boolean fun next() : T } fun T?.iterator() = object : MyIterator { var hasNext = this@iterator != null private set override fun hasNext() = hasNext override fun next() : T { if (hasNext) { hasNext = false return this@iterator!! } throw java.util.NoSuchElementException() } } fun main(args : Array) { val i : Int? = 1 for (x in i) { System.out.println(x) } }