# AndroidJavaObject

> AndroidJavaObject is the Unity representation of a generic instance of java.lang.Object.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AndroidJNIModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public class AndroidJavaObject : IDisposable
```

## Remarks

It can be used as type-less interface to an instance of any Java class. **Note**: this API can be used from custom thread, but requires that thread to be attached to JVM first, see [AndroidJNI.AttachCurrentThread](/engine/6000.7/script-reference/unityengine/androidjni/attachcurrentthread.md).

## Constructors

| Constructor                                                                                                                                                                                   | Description                                                                                  |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [AndroidJavaObject(System.IntPtr)](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(intptr\))                                                         | Create AndroidJavaObject for existing Java object.                                           |
| [AndroidJavaObject(System.IntPtr,System.IntPtr,System.Object\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(intptr-intptr-object\))           | Create AndroidJavaObject (and it's Java counterpart) using given Java class and constructor. |
| [AndroidJavaObject(System.String,System.Object\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-object\))                                | Construct an AndroidJavaObject based on the name of the class.                               |
| [AndroidJavaObject(System.String,System.String\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-string\))                                | Construct an AndroidJavaObject based on the name of the class.                               |
| [AndroidJavaObject(System.String,UnityEngine.AndroidJavaClass\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-androidjavaclass\))       | Construct an AndroidJavaObject based on the name of the class.                               |
| [AndroidJavaObject(System.String,UnityEngine.AndroidJavaObject\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-androidjavaobject\))     | Construct an AndroidJavaObject based on the name of the class.                               |
| [AndroidJavaObject(System.String,UnityEngine.AndroidJavaProxy\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-androidjavaproxy\))       | Construct an AndroidJavaObject based on the name of the class.                               |
| [AndroidJavaObject(System.String,UnityEngine.AndroidJavaRunnable\[\])](/engine/6000.7/script-reference/unityengine/androidjavaobject/ctor.md#androidjavaobject\(string-androidjavarunnable\)) | Construct an AndroidJavaObject based on the name of the class.                               |

## Methods

| Method                                                                                            | Description                                                            |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Call](/engine/6000.7/script-reference/unityengine/androidjavaobject/call.md)                     | Calls a Java method on an object (non-static).                         |
| [CallStatic](/engine/6000.7/script-reference/unityengine/androidjavaobject/callstatic.md)         | Call a static Java method on a class.                                  |
| [CloneReference](/engine/6000.7/script-reference/unityengine/androidjavaobject/clonereference.md) | Creates a clone of the C# object that references the same Java object. |
| [Dispose](/engine/6000.7/script-reference/unityengine/androidjavaobject/dispose.md)               | IDisposable callback.                                                  |
| [Get](/engine/6000.7/script-reference/unityengine/androidjavaobject/get.md)                       | Get the value of a field in an object (non-static).                    |
| [GetRawClass](/engine/6000.7/script-reference/unityengine/androidjavaobject/getrawclass.md)       | Retrieves the raw jclass pointer to the Java class.                    |
| [GetRawObject](/engine/6000.7/script-reference/unityengine/androidjavaobject/getrawobject.md)     | Retrieves the raw jobject pointer to the Java object.                  |
| [GetStatic](/engine/6000.7/script-reference/unityengine/androidjavaobject/getstatic.md)           | Get the value of a static field in an object type.                     |
| [Set](/engine/6000.7/script-reference/unityengine/androidjavaobject/set.md)                       | Set the value of a field in an object (non-static).                    |
| [SetStatic](/engine/6000.7/script-reference/unityengine/androidjavaobject/setstatic.md)           | Set the value of a static field in an object type.                     |
