trait Names extends AnyRef
EXPERIMENTAL
This trait defines Name
s in Scala Reflection, and operations on them.
Names are simple wrappers for strings. Name has two subtypes TermName and TypeName which distinguish names of terms (like objects or members) and types. A term and a type of the same name can co-exist in an object.
To search for the map
method (which is a term) declared in the List
class, one can do:
scala> typeOf[List[_]].member(TermName("map")) res0: reflect.runtime.universe.Symbol = method map
To search for a type member, one can follow the same procedure, using TypeName
instead.
For more information about creating and using Name
s, see the Reflection Guide: Annotations, Names, Scopes, and More
- Source
- Names.scala
- Grouped
- Alphabetic
- By Inheritance
- Names
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
type
Name >: Null <: NameApi
The abstract type of names.
-
abstract
class
NameApi
extends AnyRef
The API of Name instances.
-
abstract
type
TermName >: Null <: TermNameApi with Name
The abstract type of names representing types.
-
trait
TermNameApi
extends AnyRef
Has no special methods.
Has no special methods. Is here to provides erased identity for
TermName
. -
abstract
class
TermNameExtractor
extends AnyRef
An extractor class to create and pattern match with syntax
TermName(s)
. -
abstract
type
TypeName >: Null <: TypeNameApi with Name
The abstract type of names representing terms.
-
trait
TypeNameApi
extends AnyRef
Has no special methods.
Has no special methods. Is here to provides erased identity for
TypeName
. -
abstract
class
TypeNameExtractor
extends AnyRef
An extractor class to create and pattern match with syntax
TypeName(s)
.
Abstract Value Members
-
abstract
val
TermName: TermNameExtractor
The constructor/extractor for
TermName
instances. -
abstract
val
TypeName: TypeNameExtractor
The constructor/extractor for
TypeName
instances. -
abstract
def
newTermName(s: String): TermName
Create a new term name.
Create a new term name.
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use TermName instead
-
abstract
def
newTypeName(s: String): TypeName
Creates a new type name.
Creates a new type name.
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use TypeName instead
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Names, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def ensuring(cond: (Names) ⇒ Boolean, msg: ⇒ Any): Names
- def ensuring(cond: (Names) ⇒ Boolean): Names
- def ensuring(cond: Boolean, msg: ⇒ Any): Names
- def ensuring(cond: Boolean): Names
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def →[B](y: B): (Names, B)
Deprecated Value Members
-
implicit
def
stringToTermName(s: String): TermName
An implicit conversion from String to TermName.
An implicit conversion from String to TermName. Enables an alternative notation
"map": TermName
as opposed toTermName("map")
.- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use explicit
TermName(s)
instead
-
implicit
def
stringToTypeName(s: String): TypeName
An implicit conversion from String to TypeName.
An implicit conversion from String to TypeName. Enables an alternative notation
"List": TypeName
as opposed toTypeName("List")
.- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use explicit
TypeName(s)
instead
Inherited from AnyRef
Inherited from Any
Names
API
The methods available for each reflection entity, without the implementation. Since the reflection entities are later overridden by runtime reflection and macros, their API counterparts guarantee a minimum set of methods that are implemented.
Extractors
Extractors provide the machinery necessary to allow pattern matching and construction of reflection entities that is similar to case classes, although the entities are only abstract types that are later overridden.