2009-11-03 10 views
15

Słyszałem ostatnio jakieś rady dla „unimport niejawna konwersja z Szablony” - Przypuszczam, że to oznacza, że ​​jest to możliwe do unimport niepożądanych klas TOO:Unimporting w Scala

import java.awt._ 
unimport java.awt.List 

ale nie jest to składnia "unimport" (tj. nie ma takiego słowa kluczowego unimport). Jaka jest prawidłowa składnia?

Odpowiedz

25

Użyj funkcji importowania aliasów, ale zmień nazwę "niechcianej klasy" na "_". Ponieważ "_" nie może być dostępny w kodzie Scala jako nazwa klasy, to ukrywa klasę o zmienionej nazwie przed nieuprawnionym dostępem.

import java.awt.{List => _, _} 
+2

Hmmm - to wydaje się niezgrabny siekać ':-(' –

+7

Nie, to nie jest hack, to jest po prostu przeciążenie znaczeń „_” Jeśli stosowany sam w klauzuli importu, oznacza to wszystko, jeśli.. użyte po prawej stronie nazwy zmiany importu, to znaczy, nie importuj. –

+3

Dziwne, ale hej, to Scala! –