Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
J2SE 1.5 in a Nutshell 中文版 --1.5新特性

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

Article
J2SE 1.5 in a Nutshell

译者按:因为对J2SE 1.5中的新特性理解的不够深入透彻,所以在翻译中肯定会有一些失准的地方,请各位看官不吝赐教 告诉我


Calvin Austin
February 2004

Java2平台标准版(J2SE)1.5版本(代号"Tiger")是对Java平台和语言的下一个重要修改;目前1.5版本的J2SE包含了15个JSR的请求,相应的JCP导致了将近100个显著的修改.

看到这个版本带来了这么多激动人心的变动,你可能想知道你应该从哪里开始.和以往的发布一样,所有的改动都会有一个清晰的列表保存在"Release notes guide".这篇来自J2SE开发团队的文章将带领你巡视主要的变动,使得你可以在深入API文档之前快速的把握J2SE 1.5能提供什么.

J2SE 1.5版本将关注在下面几个关键的主题:

还有一些特性也很重要,但是和这些主题不相关,所以他们被列在了文末:

简易开发 Ease of Development

你可能已经看到了一些能使得开发变得更加简易的Java语言上新特性的报告.这些特性包括了泛型类别,元数据,自动装箱,一个增强的for循环,枚举类型,静态引入,C语言风格的输入输出,变量参数,并行工具和一个简单化了的RMI接口生成.

JSR 201包含了上述语言特性中的4个:增强的for循环,枚举类型,静态导入和自动装箱;JSR 175 说明了元数据机能;而JSR 14则详细说明了泛型类别.

在javac编译器中使用的默认的语言是J2SE1.4.这就意味着如果你想使用任何的这些新语言特性必须在编译的时候在javac的命令行上添加一个参数 -source 1.5.(译者按:这也是目前很多的开发人员下载了这个版本以后发现无法使用这些新特性的原因.)

元数据 Metadata

J2SE 1.5 中的元数据特性提供了一个连接附加数据到Java Class,Interface,Method和Field中的能力.这些附加的数据或者注解能被javac编译器或者其他的工具识别,并且可以根据配置保存在class文件中,并且能在运行时通过Java的reflection API来发现.

给Java平台添加元数据的一个主要原因是似的开发和运行工具能得到一个基础框架,使得可以减少在编码和发布的时候需要的额外的努力.一个工具能使用这些元数据信息来产生一些额外的代码或者在调试的时候提供额外的信息.

代替元数据工具,下面的范例代码创建了一个智能调试的元数据注解.这个注解将在随后的调试中简单的显示出来.我们可以看到大部分的元数据标签组成了一个标准的,固定的集合.

import java.lang.annotation.*;
import java.lang.reflect.*;
                                                                                
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @interface debug  {
    boolean  devbuild() default false;
    int counter();
}
                                                                                
public class MetaTest {
    final boolean production=true;
    @debug(devbuild=production,counter=1) public void testMethod()  {
    }
 
                                                                               
    public static void main(String[] args) {
                                                                                
        MetaTest mt = new MetaTest();
        try {
            Annotation[] a = mt.getClass().getMethod("testMethod").getAnnotations();
            for (int i=0; i<a.length ; i++)  { 
                 System.out.println("a["+i+"]="+a[i]+" "); 
             } 
         } catch(NoSuchMethodException e) { 
             System.out.println(e); 
         } 
     } 
 } 



相关文章

相关软件