# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Protected Ctors | Methods | Inherited Methods

# ConstantCallSite

`public class ConstantCallSite`
`` `extends CallSite` ``

java.lang.Object
↳ | java.lang.invoke.CallSite
| ↳ | java.lang.invoke.ConstantCallSite

A `ConstantCallSite` is a `CallSite` whose target is permanent, and can never be changed. An `invokedynamic` instruction linked to a `ConstantCallSite` is permanently bound to the call site's target.

## Summary

### Public constructors
`ConstantCallSite(MethodHandle target)` Creates a call site with a permanent target.

### Protected constructors
`ConstantCallSite(MethodType targetType, MethodHandle createTargetHook)` Creates a call site with a permanent target, possibly bound to the call site itself.

### Public methods
`final MethodHandle` | `dynamicInvoker()` Returns this call site's permanent target.
`final MethodHandle` | `getTarget()` Returns the target method of the call site, which behaves like a `final` field of the `ConstantCallSite`.
`final void` | `setTarget(MethodHandle ignore)` Always throws an `UnsupportedOperationException`.

### Inherited methods
From class `java.lang.invoke.CallSite`
`abstract MethodHandle` | `dynamicInvoker()` Produces a method handle equivalent to an invokedynamic instruction which has been linked to this call site.
`abstract MethodHandle` | `getTarget()` Returns the target method of the call site, according to the behavior defined by this call site's specific class.
`abstract void` | `setTarget(MethodHandle newTarget)` Updates the target method of this call site, according to the behavior defined by this call site's specific class.
`MethodType` | `type()` Returns the type of this call site's target.
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Public constructors

### ConstantCallSite

    public ConstantCallSite (MethodHandle target)

Creates a call site with a permanent target.

Parameters
`target` | `MethodHandle`: the target to be permanently associated with this call site

Throws
`NullPointerException` | if the proposed target is null

## Protected constructors

### ConstantCallSite

    protected ConstantCallSite (MethodType targetType,
                    MethodHandle createTargetHook)

Creates a call site with a permanent target, possibly bound to the call site itself.

During construction of the call site, the `createTargetHook` is invoked to produce the actual target, as if by a call of the form `(MethodHandle) createTargetHook.invoke(this)`.

Note that user code cannot perform such an action directly in a subclass constructor, since the target must be fixed before the `ConstantCallSite` constructor returns.

The hook is said to bind the call site to a target method handle, and a typical action would be `someTarget.bindTo(this)`. However, the hook is free to take any action whatever, including ignoring the call site and returning a constant target.

The result returned by the hook must be a method handle of exactly the same type as the call site.

While the hook is being called, the new `ConstantCallSite` object is in a partially constructed state. In this state, a call to `getTarget`, or any other attempt to use the target, will result in an `IllegalStateException`. It is legal at all times to obtain the call site's type using the `type` method.

Parameters
`targetType` | `MethodType`: the type of the method handle to be permanently associated with this call site
`createTargetHook` | `MethodHandle`: a method handle to invoke (on the call site) to produce the call site's target

Throws
`WrongMethodTypeException` | if the hook cannot be invoked on the required arguments, or if the target returned by the hook is not of the given `targetType`
`NullPointerException` | if the hook returns a null value
`ClassCastException` | if the hook returns something other than a `MethodHandle`
`Throwable` | anything else thrown by the hook function

## Public methods

### dynamicInvoker

    public final MethodHandle dynamicInvoker ()

Returns this call site's permanent target. Since that target will never change, this is a correct implementation of `CallSite#dynamicInvoker`.

Returns
`MethodHandle` | the immutable linkage state of this call site, a constant method handle

Throws
`IllegalStateException` | if the `ConstantCallSite` constructor has not completed

### getTarget

    public final MethodHandle getTarget ()

Returns the target method of the call site, which behaves like a `final` field of the `ConstantCallSite`. That is, the target is always the original value passed to the constructor call which created this instance.

Returns
`MethodHandle` | the immutable linkage state of this call site, a constant method handle

Throws
`IllegalStateException` | if the `ConstantCallSite` constructor has not completed

### setTarget

    public final void setTarget (MethodHandle ignore)

Always throws an `UnsupportedOperationException`. This kind of call site cannot change its target.

Parameters
`ignore` | `MethodHandle`: a new target proposed for the call site, which is ignored

Throws
`UnsupportedOperationException` | because this kind of call site cannot change its target

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*