# Class GeneratedMessage.GeneratedExtension&lt;ContainingType,Type&gt; (3.19.4)

    public static class GeneratedMessage.GeneratedExtension<ContainingType,Type> extends Extension<ContainingType,Type>

Type used to represent generated extensions. The protocol compiler
generates a static singleton instance of this class for each extension.

For example, imagine you have the `.proto` file:

option java_class = "MyProto";

message Foo {
extensions 1000 to max;
}

extend Foo {
optional int32 bar;
}

Then, `MyProto.Foo.bar` has type
`GeneratedExtension<MyProto.Foo, Integer>`.

In general, users should ignore the details of this type, and simply use
these static singletons as parameters to the extension accessors defined
in ExtendableMessage and ExtendableBuilder.

## Inheritance

[Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> [ExtensionLite\<ContainingType,Type\>](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite) \> [Extension](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension) \> GeneratedMessage.GeneratedExtension\<ContainingType,Type\>

## Inherited Members

[Extension.fromReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_fromReflectionType_java_lang_Object_) [Extension.getDescriptor()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getDescriptor__) [Extension.getExtensionType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getExtensionType__) [Extension.getMessageDefaultInstance()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getMessageDefaultInstance__) [Extension.getMessageType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getMessageType__) [Extension.singularFromReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_singularFromReflectionType_java_lang_Object_) [Extension.singularToReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_singularToReflectionType_java_lang_Object_) [Extension.toReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_toReflectionType_java_lang_Object_) [ExtensionLite.getDefaultValue()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getDefaultValue__) [ExtensionLite.getLiteType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getLiteType__) [ExtensionLite.getNumber()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getNumber__) [ExtensionLite.isRepeated()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_isRepeated__) [Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

| ## Type Parameters ||
|---|---|
| **Name** | **Description** |
| `ContainingType` |   |
| `Type` |   |

## Methods

### fromReflectionType(Object value)

    protected Object fromReflectionType(Object value)

Convert from the type used by the reflection accessors to the type used
by native accessors. E.g., for enums, the reflection accessors use
EnumValueDescriptors but the native accessors use the generated enum
type.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |   |

**Overrides** [Extension\<ContainingType,Type\>.fromReflectionType(Object value)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_fromReflectionType_java_lang_Object_)

### getDefaultValue()

    public Type getDefaultValue()

Returns the default value of the extension field.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `Type` |   |

**Overrides** [ExtensionLite\<ContainingType,Type\>.getDefaultValue()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getDefaultValue__)

### getDescriptor()

    public Descriptors.FieldDescriptor getDescriptor()

Returns the descriptor of the extension.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Descriptors.FieldDescriptor` |   |

**Overrides** [Extension\<ContainingType,Type\>.getDescriptor()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getDescriptor__)

### getExtensionType()

    protected Extension.ExtensionType getExtensionType()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension.ExtensionType` |   |

**Overrides** [Extension\<ContainingType,Type\>.getExtensionType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getExtensionType__)

### getLiteType()

    public WireFormat.FieldType getLiteType()

Returns the type of the field.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.WireFormat.FieldType` |   |

**Overrides** [ExtensionLite\<ContainingType,Type\>.getLiteType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getLiteType__)

### getMessageDefaultInstance()

    public Message getMessageDefaultInstance()

If the extension is an embedded message or group, returns the default
instance of the message.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Message` |   |

**Overrides** [Extension\<ContainingType,Type\>.getMessageDefaultInstance()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_getMessageDefaultInstance__)

### getNumber()

    public int getNumber()

Returns the field number of the extension.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

**Overrides** [ExtensionLite\<ContainingType,Type\>.getNumber()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_getNumber__)

### internalInit(Descriptors.FieldDescriptor descriptor)

    public void internalInit(Descriptors.FieldDescriptor descriptor)

For use by generated code only.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `descriptor` | `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Descriptors.FieldDescriptor` |

### isRepeated()

    public boolean isRepeated()

Returns whether it is a repeated field.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

**Overrides** [ExtensionLite\<ContainingType,Type\>.isRepeated()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ExtensionLite#com_google_protobuf_ExtensionLite_isRepeated__)

### singularFromReflectionType(Object value)

    protected Object singularFromReflectionType(Object value)

Like [#fromReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessage.GeneratedExtension#com_google_protobuf_GeneratedMessage_GeneratedExtension_fromReflectionType_java_lang_Object_), but if the type is a repeated
type, this converts a single element.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |   |

**Overrides** [Extension\<ContainingType,Type\>.singularFromReflectionType(Object value)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_singularFromReflectionType_java_lang_Object_)

### singularToReflectionType(Object value)

    protected Object singularToReflectionType(Object value)

Like [#toReflectionType(Object)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessage.GeneratedExtension#com_google_protobuf_GeneratedMessage_GeneratedExtension_toReflectionType_java_lang_Object_), but if the type is a repeated
type, this converts a single element.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |   |

**Overrides** [Extension\<ContainingType,Type\>.singularToReflectionType(Object value)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_singularToReflectionType_java_lang_Object_)

### toReflectionType(Object value)

    protected Object toReflectionType(Object value)

Convert from the type used by the native accessors to the type used
by reflection accessors. E.g., for enums, the reflection accessors use
EnumValueDescriptors but the native accessors use the generated enum
type.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html` |   |

**Overrides** [Extension\<ContainingType,Type\>.toReflectionType(Object value)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Extension#com_google_protobuf_Extension_toReflectionType_java_lang_Object_)