2012-03-08 59 views
9

如果可能的话,需要重新设计java编译器的哪个部分有一个“import as”语句,因此代码可以像这样:在java中实现“import ... as ...”需要做些什么

import java.util.Date; 
import mypackage.Date as MyDate; 
//... 
javaDate = new Date(); 
myDate = new MyDate(); 

更有甚者,有什么需要得到这样的语法:

import java.util.Date; 
import path.to.mypackage as MP; 
//... 
javaDate2 = new Date(); 
myDate2 = new MP.Date(); 

它会造成什么麻烦现有的代码?

+0

您是否暗示您打算对Java编译器进行“重新设计”? – 2012-03-08 05:46:33

+0

试着理解* java *的方式。 – 2012-03-08 05:55:13

+1

注意:整个'import'机制只在编译时才存在。一旦你到达'.class'文件,它都是完全正式的类名。所以这种改变只会*需要修改编译器,而系统的其他部分(JVM,库,...)则需要改变。 – 2012-03-08 07:28:31

回答

6

这显然需要对Java编译器进行更改。如果您真的有兴趣做这样的事情,那么请看OpenJDK项目,您将在其中找到Oracle Java编译器和运行时环境的源代码。

如果您想将此作为Java未来版本的新功能提出,那么您必须通过Java Community Process

+0

我投票这个帖子是最好的和简单的答案。虽然,如果这个机制提议给JCP,我不明白这个特性的用法。每个人都可以更容易和易读地编写'Date'而不是'MyDate' – 2012-03-08 07:32:15

+0

在猜测中,这种*语法糖必须存在大量的JCP。 – 2012-03-08 07:32:34

+4

@ wahyu.fahmy有些地方可能有用的例子。例如'java.util.Date'和'java.sql.Date'。如果你同时导入它们,那么如果你使用'Date'这个名字,Java并不知道你的意思。例如,如果您可以将其重命名为'SqlDate',将会非常有用。 – Jesper 2012-03-08 07:56:50

相关问题