scala

trait Application

[source: scala/Application.scala]

trait Application
extends AnyRef

The Application trait can be used to quickly turn objects into executable programs, but is not recommended. Here is an example:

  object Main extends Application {
    Console.println("Hello World!")
  }
  

Here, object Main inherits the main method of Application. The body of the Main object defines the main program. This technique does not work if the main program depends on command-line arguments (which are not accessible with the technique presented here).

It is possible to time the execution of objects that inherit from class Application by setting the global scala.time property. Here is an example for benchmarking object Main:

  java -Dscala.time Main
  

In practice the Application trait has a number of serious pitfalls:

Author
Matthias Zenger
Version
1.0, 10/09/2003
Value Summary
val executionStart : Long
The time when execution of this program started.
Method Summary
def main (args : Array[java.lang.String]) : Unit
The default main method.
Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Value Details
val executionStart : Long
The time when execution of this program started.

Method Details
def main(args : Array[java.lang.String]) : Unit
The default main method.
Parameters
args - the arguments passed to the main method