`
stta04
  • 浏览: 114851 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

插曲一 解决-source 1.4 中不支持注释和泛型问题

    博客分类:
  • jbpm
阅读更多

转载:Eclipse中报错的解决方案<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Eclipse中报错要了解详细信息,请使用-xlint:unchecked重新编译的解决方案

1、遇到问题

ant执行jasperreportsamples\charts示例的build.xml时,无法编译,提示错误如下:
javac:
[javac]Compiling2sourcefilestoE:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac]
注意:E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java使用了未经检查或不安全的操作。
[javac]
注意:要了解详细信息,请使用-Xlint:unchecked重新编译。

2、查了一下资料,知道是泛型的原因,网上查到的解决方案主要有以下几种

1.编译时带上参数-source1.4
2.
使用@SupressWarnings("unchecked")注释
3.
更新你的代码,使用List<Object>.List<Object>的实例能接受任何类型的对象,就像是一个原型List。然而,编译器不会报错。
(
以上三种方法来源:http://www.matrix.org.cn/resource/article/43/43634_java_generics.html

4.
如果你用的Ant,使用build.xml编译的话,可以右击build.xml文件,
-->
执行-->构成和执行,选择参数,在《程序参数》里面输入-xlint:unchecked即可;

5.
找到build.xml里面类似的语句,加上一句话:
<!--JavaCompile-->
<targetname="compile"depends="init">
<javacsrcdir="src"destdir="${classdir}"
deprecation="on"encoding="Windows-31J"debug="on"includes="**/jp/**">
<compilerargvalue="-Xlint:unchecked"/>`<!--
就是这句话!!-->
<classpathrefid="project.class.path"/>
</javac>
</target>
(以上两种方法来源:http://www.itwenku.com/java/12/47796.htm

3、自己的试验与结论

第一种:

编译时带上参数-source1.4”使用方法:
找到build.xml里面类似的语句,加上一句话:
<javacsrcdir="${src.dir}"destdir="${classes.dir}">
<classpathrefid="classpath"/>
<compilerargline="-source1.5"/>`<!--
就是这句话!注意与第五种方式不同的是line标签而不是value-->
</javac>
编译通过,charts下的报表出现了!

第二种:
使用@SupressWarnings("unchecked")注释
ChartsApp.javamain函数前加上了这个注释,但是没有起作用,提示错误依然是“[javac]注意:要了解详细信息,请使用-Xlint:unchecked重新编译。,怎么回事呢?

在一篇文章中找到了答案:
http://www.matrix.org.cn/resource/article/43/43864_Generic_Types.html
在撰写本文时候,javac并不支持@SuppressWarnings的注解。期望在Java5.1中得到支持。

第三种:
更改代码为泛型使用方式:
原来的代码:
Mapparameters=newHashMap();
parameters.put("MaxOrderID",newInteger(12500));

更改后的代码:
Map<String,Integer>parameters=newHashMap<String,Integer>();
parameters.put("MaxOrderID",newInteger(12500));
或者:
Map<Object,Object>parameters=newHashMap<Object,Object>();
parameters.put("MaxOrderID",newInteger(12500));

更改后,顺利通过编译,也能看到报表了!!

第四种:
经验证无效;

第五种:

<javacsrcdir="src"destdir="${classdir}"
deprecation="on"encoding="Windows-31J"debug="on"includes="**/jp/**">
<compilerargvalue="-Xlint:unchecked"/>`<!--
就是这句话!!-->
<classpathrefid="project.class.path"/>
</javac>

加上"<compilerargvalue="-Xlint:unchecked"/>"后,出现"警告",不过编译顺利通过,也能看到报表了!
编译提示如下:
[javac]Compiling2sourcefilestoE:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac]E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java:115:
警告:[unchecked]对作为普通类型java.util.Map的成员的put(K,V)的调用未经检查
[javac]parameters.put("MaxOrderID",newInteger(12500));
[javac]^
[javac]1
警告

呵呵,答案是丰富多彩的,条条大道通罗马,这次不仅解决了问题,还找到了四种解决问题的方法。

分享到:
评论

相关推荐

    jd-gui-windows1.4

    1. **不支持JDK 1.5的特性**:JD-GUI 1.4无法处理JDK 1.5引入的某些特性,如泛型、枚举、匿名内部类的改进等。这些在反编译过程中可能显示为原始类型或者无法完全还原。 2. **不支持JDK 1.7的自动关闭流特性**:在...

    JDK转换器(1.5-->1.4)

    这在JDK 1.4中是不支持的,因此1.5编译的类如果使用了泛型,在1.4环境中运行可能会导致错误。 2. **枚举(Enums)**:JDK 1.5引入了枚举类型,这是一种预定义常量的类。在1.4中,枚举通常通过常量静态变量实现,...

    Generic_2(泛型类-泛型方法-泛型接口-泛型限定(上限)

    这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”...

    JAVA设计模式--程序设计--反射--注解--泛型

    首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的经验总结。设计模式包括创建型模式(如单例、工厂方法、抽象工厂等)、结构型模式(如适配器、装饰器、代理等)和行为型模式(如策略、观察者、...

    commons-collections-3.2.1.jar,commons-dbcp-1.4.jar,commons-pool-1.6.jar

    这些文件是Apache Commons库的一部分,其中包括`commons-collections-3.2.1.jar`,`commons-dbcp-1.4.jar`和`commons-pool-1.6.jar`。Apache Commons是一个Java项目,旨在提供一系列高质量、实用的组件,以促进软件...

    JAVA-泛型课件-泛型课件

    泛型是Java语言的一个重要特性,首次出现在Java SE 1.5版本中。它的引入主要是为了解决在集合操作中类型安全性的问题,并...在现代Java程序中,泛型已经成为了一项不可或缺的技术,广泛应用于各种类库和应用程序中。

    fckeditor-java-2.4.1修改支持jdk1.4

    然而,在2.4.1版本发布时,它默认支持的Java环境可能较高,不适用于仍运行在JDK 1.4环境的项目。本文将深入探讨如何通过对源码进行修改,使FCKeditor-java-2.4.1兼容JDK 1.4。 首先,我们需要理解JDK 1.4与更高版本...

    很好的Java泛型的总结

    Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的ClassCastException。 Java泛型的类型安全检查 ------------------------ Java泛型的类型安全...

    Java泛型研究.pdf

    泛型是Java语言中的一种重要机制,引入泛型解决了早期Java版本中类型不安全的问题,提高了Java语言的开发效率和安全性。开发者需要了解泛型的基本概念、作用、应用和注意事项,以便更好地使用泛型提高代码的质量和...

    xstream-1.4-API

    **XStream 1.4 API 深度解析** XStream 是一个强大的 Java 库,它的主要功能是将 Java 对象序列化为 XML,并能够从 ...在实际项目中,结合文档和 `xstream-1.4-API` 中的示例,你将能够更深入地理解和应用 XStream。

    黑马程序员----泛型与反射的小运用

    在Java编程语言中,泛型和反射是两个非常重要的特性,它们在软件开发中有着广泛的应用。本篇文章将深入探讨这两个概念以及它们在实际开发中的小运用。 首先,我们来看泛型(Generics)。泛型是在Java SE 5.0引入的...

    泛型java的泛型知识,非常有用

    泛型允许我们在类、接口和方法中使用类型参数,这样在编译时期就能检查类型匹配,减少运行时类型转换异常。 1. **泛型的基本概念** - 泛型的本质是在类、接口或方法中使用类型参数,让它们能够处理多种数据类型。...

    泛型学习和泛型接口和泛型经典示例

    泛型学习和泛型接口和泛型经典示例

    java,反射+注释+泛型+jdbc mysql练习项目代码

    Java反射机制是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。...通过实际编写和运行代码,可以更好地掌握这些概念,并提高问题解决能力。

    j2sdk-1.4 jdk

    - 引入了泛型的早期预览,虽然不完全支持,但为后来的Java SE 5.0的泛型打下了基础。 - 引入了NIO(New I/O)库,提供了非阻塞I/O操作,提高了网络和文件系统的处理性能。 - 提供了更强大的异常处理机制,使得错误...

    commons-codec所有版本(1.1-1.10).zip

    例如,1.2版本添加了对URL编码的改进,1.3增加了对ISO-8859-1的支持,1.4引入了线程安全的Base64编码器和解码器,而1.5开始支持Java 5的泛型。 6. **国际化与本地化**: - 随着版本的升级,Apache Commons Codec...

    C#学习之路--泛型

    在“C#学习之路--泛型”这个主题中,我们将深入探讨泛型的基本概念、泛型的定义和类型参数、泛型类和泛型接口,以及泛型委托和泛型事件。 **泛型的基本概念** 泛型是C# 2.0引入的一个新特性,它的核心思想是推迟...

    java不支持创建泛型数组(1)

    在Java编程语言中,"java不支持创建泛型数组(1)"这个标题揭示了一个重要的概念,即Java不直接允许我们创建带有类型参数的泛型数组。这是因为Java的泛型是类型擦除的,这意味着在编译后,所有的泛型信息都会被移除,...

    C#泛型类、泛型方法、泛型接口、泛型委托的实例

    在C#编程中,泛型是一种强大的工具,它允许我们编写可重用的代码,同时保持类型安全性和高效性。本文将深入探讨泛型类、泛型方法、泛型接口和泛型委托,并通过实例来阐述它们的应用。 首先,我们来看泛型类。泛型类...

Global site tag (gtag.js) - Google Analytics