Runtime Type Information

RTTI steht als Abkürzung für Runtime Type Information („Typinformation zur Laufzeit“) und ist ein Begriff aus der Softwareentwicklung und Bestandteil verschiedener Programmiersprachen.

RTTI ermöglicht es, zur Laufzeit den Typ eines Objektes zu ermitteln. Somit kann ein Programm während seiner Ausführung ermitteln, welcher konkreten Klasse ein Objekt angehört, auf das eine bestimmte Referenz zeigt. Ohne diesen Mechanismus „wüsste“ das Programm an dieser Stelle nur, dass ein Exemplar irgendeiner Klasse referenziert wird, die von der Basisklasse abgeleitet ist. Mit diesem Mechanismus „weiß“ es, welcher Klasse das referenzierte Objekt angehört.

Während RTTI einen recht einfachen Mechanismus darstellt, der üblicherweise nur den Namen der konkreten Klasse liefert, gibt es in moderneren Programmiersprachen den Mechanismus der Reflexion, der es ermöglicht, auch Informationen über andere Eigenschaften einer Klasse zur Laufzeit zu ermitteln, z. B. die Namen und Signaturen ihrer Methoden.

Beispiel

Sei also z. B. die eine Referenz auf ein Exemplar der Basisklasse "Geschäftspartner" gegeben, von der zwei konkrete Unterklassen "Kunde" und "Lieferant" definiert sind. Mit Typinformation zur Laufzeit kann das Programm herausfinden, ob ein bestimmter Geschäftspartner ein Kunde oder ein Lieferant ist.

Besonderheiten

  • In Java wird die Typinformation zur Laufzeit durch die Methode "getClass" bereitgestellt, die eine Referenz auf ein sogenanntes Klassenobjekt zurückgibt, das unter anderem den Namen der konkreten Klasse kennt.
  • In Object Pascal steht einem der is-Operator zur Verfügung. Außerdem kann man ClassInfo, ClassType und ClassName eines Objekts abfragen.