冬天的风好冷 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 使用了未经检查或不安全的操作

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办