Skip to content

Instantly share code, notes, and snippets.

@nitsanw
Created October 31, 2012 17:44
Show Gist options
  • Save nitsanw/3988602 to your computer and use it in GitHub Desktop.
Save nitsanw/3988602 to your computer and use it in GitHub Desktop.
Using Unsafe to break encapsulation - step 2
private static final long valueFieldOffset;
private static final long countFieldOffset;
private static final long offsetFieldOffset;
static
{
try
{
valueFieldOffset = UnsafeAccess.unsafe.objectFieldOffset(String.class.getDeclaredField("value"));
countFieldOffset = UnsafeAccess.unsafe.objectFieldOffset(String.class.getDeclaredField("count"));
offsetFieldOffset = UnsafeAccess.unsafe.objectFieldOffset(String.class.getDeclaredField("offset"));
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
@nitsanw
Copy link
Author

nitsanw commented Nov 1, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment