# Interface ModuleReference

All Superinterfaces:
  `Mirror, ObjectReference, Value`

public interface ModuleReference extends ObjectReference
A module in the target VM.

Any method on `ModuleReference` which directly or indirectly takes `ModuleReference` as a parameter may throw `VMDisconnectedException` if the target VM is disconnected and the `VMDisconnectEvent` has been or is available to be read from the `EventQueue`.

Any method on `ModuleReference` which directly or indirectly takes `ModuleReference` as a parameter may throw `VMOutOfMemoryException` if the target VM has run out of memory.

Any method on `ModuleReference` or which directly or indirectly takes `ModuleReference` as a parameter may throw `InvalidModuleException` if the mirrored module has been unloaded. Not all target virtual machines support this class. Use `VirtualMachine.canGetModuleInfo()` to determine if the class is supported.

Since:
  9

## Field Summary

### Fields declared in interface ObjectReference

`INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED`

## Method Summary

Modifier and Type
Method
Description
`ClassLoaderReference`
`classLoader()`
Returns the `ClassLoaderReference` object for this module.
`String`
`name()`
Returns the module name.

### Methods declared in interface Mirror

`toString, virtualMachine`

### Methods declared in interface ObjectReference

`disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads`

### Methods declared in interface Value

`type`

## Method Details

### name

String name()
Returns the module name. This method returns `null` if this module is an unnamed module.

Returns:
  the name of this module.

### classLoader

ClassLoaderReference classLoader()
Returns the `ClassLoaderReference` object for this module.

Returns:
  the `ClassLoaderReference` object for this module.