冬天的风好冷 2016-02-09 06:17 采纳率: 0%
浏览 2051

使用了未经检查或不安全的操作

import java.lang.reflect.*;
import java.util.Collection;
public class ProxyInstan{
public static void main(String[] args) throws

IllegalArgumentException,InstantiationException,IllegalAccessException,InvocationTargetException,SecurityException,NoSuchMethodException{
Class proxy1=Proxy.getProxyClass(Collection.class.getClassLoader(),Collection.class);//获取动态类字节码
//@SuppressWarnings({"unchecked"})

Constructor constructor=proxy1.getConstructor(InvocationHandler.class);//--------------获取相关参数构造函数

    class MyInvocationHandler1 implements InvocationHandler{//-------------------------------关于InvocationHandler类型的类
        @Override
        public Object invoke(Object proxy,Method method,Object[] args)throws Throwable{
            return null;
        }
    }
    Collection collection=(Collection) constructor.newInstance(new MyInvocationHandler1());//利用构造函数实例化动态类

    Collection collection1=(Collection) constructor
        .newInstance(new InvocationHandler() {
            @Override
            public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
                return null;
            }
        });
    //输出动态类实例对象
    System.out.println(collection);
    System.out.println(collection1);
}

}
以上程序在Eclipse中能编译运行,有紧告
在命令行下不能运行,说使用了未经检查或不安全的操作,添加@SuppressWarnings({"unchecked"}) 编译通过。但无法加载运行,说找不到或无法加载主类
自学新手请教如何修改?

  • 写回答

3条回答

  • 91program 博客专家认证 2016-02-09 08:54
    关注

    在编译java源文件时,你使用的是jdk1.5或以上时,可能出现这个问题。(使用了未经检查或不安全的操作;请使用 -Xlint:unchecked 重新编译。)
    原因是jdk1.5里的集合类的创建和jdk1.4里有些区别,主要是jdk1.5里增加了泛型,也就是说可以对集合里的数据进行检查。在jdk1.5以前,如果没有指定参数类型,则 JDK 1.5 编译器由于无法检查 给出的参数是否合乎要求,而报告 unchecked 警告,这并不影响运行。

    具体能帮上你的,是万能的搜索引擎,如:Ecplise 使用了未经检查或不安全的操作

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?