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

问题描述

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

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"}) 编译通过。但无法加载运行,说找不到或无法加载主类
自学新手请教如何修改?

解决方案

在本人用editplus写java文件时碰到的问题。

复制代码 代码如下:

import java.util.*;
class collection{
public static void main(String[] args) {
Collection c1=new ArrayList(25);

    c1.add(new String("one"));
    c1.add(new String("two"));
    String s="three";
    c1.add(s);
    for (Iterator i=c1.iterator();i.hasNext();)
    {

        System.out.println(i.next());
    }
}

}
然后查找到以下原因,这是转自别人的。

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

List temp = new ArrayList ();
temp.add("1");
temp.add("2");
修改为
复制代码 代码如下:

List temp = new ArrayList ();
temp.add("1");
temp.add("2");

然后修改代码为
复制代码 代码如下:

import java.util.*;
class collection{
public static void main(String[] args) {
Collection c1=new ArrayList(25);

    c1.add(new String("one"));
    c1.add(new String("two"));
    String s="three";
    c1.add(s);
    for (Iterator i=c1.iterator();i.hasNext();)
    {

        System.out.println(i.next());
    }
}

}

解决方案二:

在本人用editplus写java文件时碰到的问题。

复制代码 代码如下:

import java.util.*;
class collection{
public static void main(String[] args) {
Collection c1=new ArrayList(25);

    c1.add(new String("one"));
    c1.add(new String("two"));
    String s="three";
    c1.add(s);
    for (Iterator i=c1.iterator();i.hasNext();)
    {

        System.out.println(i.next());
    }
}

}
然后查找到以下原因,这是转自别人的。

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

List temp = new ArrayList ();
temp.add("1");
temp.add("2");
修改为
复制代码 代码如下:

List temp = new ArrayList ();
temp.add("1");
temp.add("2");

然后修改代码为
复制代码 代码如下:

import java.util.*;
class collection{
public static void main(String[] args) {
Collection c1=new ArrayList(25);

    c1.add(new String("one"));
    c1.add(new String("two"));
    String s="three";
    c1.add(s);
    for (Iterator i=c1.iterator();i.hasNext();)
    {

        System.out.println(i.next());
    }
}

}

解决方案三:

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

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

时间: 2024-10-28 20:29:23

eclipse-使用了未经检查或不安全的操作的相关文章

java编译时出现使用了未经检查或不安全的操作解决方法_java

在本人用editplus写java文件时碰到的问题. 复制代码 代码如下: import java.util.*;class collection{    public static void main(String[] args) {        Collection c1=new ArrayList(25);         c1.add(new String("one"));        c1.add(new String("two"));       

对Class.getMethod()的调用未经检查

[环境]:JDK6 [错误]: Class myClass = MethodPointerTest.class; Method add = myClass.getMethod("add" , int.class , int.class ); 上述代码出现如下警告: 警告:[unchecked]对作为普通类型 java.lang.Class 的成员的 getMethod(java.lang.String,java.lang.Class <?>...) 的调用未经检查. [解决

Shell脚本检查IP格式及mysql操作实例

  这篇文章主要介绍了Shell脚本检查IP格式及mysql操作实例,本文直接给出脚本代码,需要的朋友可以参考下 还是cronjob的一部分,就是在Rails的定时任务里,后台交互运行 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 CheckIPAddress() { e

想向各位征求下有没有,不继承eclipse的专门用于检查代码的第三方工具

问题描述 网上找了下,如findbugs,checkstyle都是集成IDE的.我想要独立运行的,不知道哪个可以有的话麻烦告知一下,谢谢...~~~ 解决方案 解决方案二:大牛,请用记事本敲!哈哈

编译*.java时出现 使用了未经检查或不安全操作 是怎么回事?

问题描述 importjava.awt.*;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.util.Stack;importjavax.swing.JOptionPane;importjavax.swing.JPanel;classmainpanelextendsJPanelimplementsKeyListener{intmax;intmap[][];intmaptmp[][];intmanX

Shell脚本检查IP格式及mysql操作实例_linux shell

还是cronjob的一部分,就是在Rails的定时任务里,后台交互运行 CheckIPAddress() { echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; then return 1 else a=`echo $1 | awk -F. '{print $1}'` b=`echo $1 | awk -F. '{print $2}'

Eclipse设定文件的默认打开方式的具体操作步骤_java

最近在学习android, 需要经常打开xml文件. 所以想修改默认其打开方式. 解决方法: 设置默认打开方式为XML Editor. 菜单:Window   ->   Preferences   ->   General   ->   Editors   ->   File   Associations File   types:   *.xml Associated   editors:   XML Editor***  ->   Default 在Associated 

java集合框架中List的定义及注意事项

大家知道,集合框架是为了表示和操作集合而规定的一种统一的标准的体系结构,学习集合知识有利于我们解决一系列例如保存数据与对象的问题. 常用的集合在系统中定义了两大接口,List和Set 这里我们就来讨论一下List 的定义以及一些常见的问题 List定义的是有序的并且数据可以重复的集合,我们先看一下下面这段代码: import java.util.ArrayList; import java.util.List; publicclass ListTest{ publicstaticvoid mai

omparable接口 容器-java基础Comparable接口的问题

问题描述 java基础Comparable接口的问题 import java.util.*; class Student implements Comparable { int id; String name; public Student(int id, String name) { this.id = id; this.name = name; } public String toString() { return id + " " +name ; } public int com