Zu 1:
Laut API-Doku (wenn du die nicht hast: unbedingt ziehen, das Teil ist genial) liegt die EmptyStackException in java.util. hast du die entsprechend importiert? Wenn nein, ersetz mal EmptyStackException mit java.util.EmptyStackException.
Zu 2:
kA, mit Typenumwandlung in Java hab ich mich nie befasst...