The type 'Unsafe' is not API,无法使用sun.misc.Unsafe

本文介绍了当在Eclipse中使用`sun.misc.Unsafe`时遇到'The type 'Unsafe' is not API'警告的解决方法。通过调整Eclipse的编译器设置,将'Deprecated and Restricted API'的'Forbidden reference'选项设置为Ignore,可以允许使用非共享API。
摘要由CSDN通过智能技术生成

`使用Unsafe时出现The type ‘Unsafe’ is not API的问题


import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Field;

import sun.misc.Unsafe;


//https://www.cnblogs.com/chenpi/p/5389254.html
/*

Unsafe对象不能直接通过new Unsafe()或调用Unsafe.getUnsafe()获取,原因如下:

不能直接new Unsafe(),原因是Unsafe被设计成单例模式,构造方法是私有的;

不能通过调用Unsafe.getUnsafe()获取,因为getUnsafe被设计成只能从引导类加载器(bootstrap class loader)加载

 */


public class UnsafeDemo2 {

	public static void main(String[] args) {
		byte[] classContents = new byte[0];
		try {
		      classContents = getClassContent();
		      Class c = getUnsafe().defineClass(null, classContents, 0, classContents.length, null, null);
		      System.out.println(c.getMethod("getA").invoke(c.newInstance(), null)); //print 1
		} catch (Exception e) {
		      e.printStackTrace();
		}
	}

	private static Unsafe getUnsafe() {
	        Field f = null;
	        Unsafe unsafe 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值