Med Scala-kod kan du skriva kod som ser ut som om du har utökat befintliga klasser, t.ex. String-klassen i stället för att anropa metoder på en StringUtil class som du sannolikt brukar göra i Java

För den som programmerar C#.NET så finns det något som heter Extension methods, men motsvarande funktionalitet saknas i Java, men däremot med Scala, så kan man t.ex. skriva följande kod, som om de två fetstilta metoderna nedan vore definierade på klassen 'java.lang.String'.

val sentenceWithWords = "My name is Tomas. What is your name?"
assertEquals(classOf[java.lang.String], sentenceWithWords.getClass())// proves that the above String indeed became typed as a java.lang.String
val firstTwoWordsWithUppercasedFirstLetter = sentenceWithWords.getFirstWordsIncludingIntermediateCharacters(2).getWithFirstLetterInEachWordUppercasedAndTheRestLowercased()
assertEquals("My Name", firstTwoWordsWithUppercasedFirstLetter)
	

Motsvarande java-kod skulle i stället se ut ungefär som de procedurella metod-anropen nedan med String-instansen som parameter:

final String firstTwoWordsWithUppercasedFirstLetter = SentenceUtility.getWithFirstLetterInEachWordUppercasedAndTheRestLowercased(
    SentenceUtility.getFirstWordsIncludingIntermediateCharacters(sentenceWithWords, 2)
);
// alternativt så här, m.h.a. static import av metoderna i klassen 'SentenceUtility':
final String firstTwoWordsWithUppercasedFirstLetter = getWithFirstLetterInEachWordUppercasedAndTheRestLowercased(
    getFirstWordsIncludingIntermediateCharacters(sentenceWithWords, 2)
);
	

På websidan som länkas nedan finns mer detaljerad källkod (och kommentarer på engelska) för ovanstående exempel.
Your Scala code can extend existing classes with implicit conversions

/ Tomas Johansson, 2010-01-19