
正文
java自动识别代码 java识别二维码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用eclipse 编写JAVA代码时,他为什么能自动识别语法错误及给出正确的写法?这是JAVA编译器的哪种特性?
这是靠eclipse自带的插件实现的java自动识别代码,的确属于静态分析。动态分析我不太了解,可能会涉及到jvm,但主要是在编译器内获取一些动态信息,如果想对java的多态进行分析就需要动态分析,即在编译时获取具体调用的类的信息。但如果是问eclipse的语法纠错,远没涉及那么高级的内容。
如果java自动识别代码你去看eclipse文件夹下的plugins文件夹,你能找到类似org.eclipse.jdt.XXX.XXX的若干jar文件,那些包就是eclipse专门用以处理java代码分析工作的jdt插件工具包。他能抽取java代码的AST(抽象语法树),也就是编译时用到的数据结构,你若学过编译原理就知道了,反正我还没学。如果做一些java方面的逆向工程,你甚至可以引用eclipse的jdt包,将java项目的代码通过相应接口(你可以在网上找到jdt的api和实例代码)传进去,获取代码中的类,字段,方法,和更细节的信息。
而jdt中也包含检测,处理语法错误的包,可以发现并纠正语法错误。这一特点还可以用来做一些正向工程(如自修改或动生成代码)。
哦,还有,针对你的问题还要说,这点特性不是编译器的,而是编辑器eclipse的。注意,绝对是编辑器的特点!虽然涉及到语法问题,但在eclipse纠错时,还没有调用编辑器,即程序还没有编辑。只有在运行程序前eclipse才会调用编辑器。编译一次不容易,每次纠错都调用编译器的话开销太大,纠错的反应速度绝对不会像平时eclipse做的那么快。
实际上eclipse可以说就是由各种插件组成的,它本身只提供一个供各种插件运行的平台,本身功能很简单,但就是通过向jdt这样的插件包实现各种复杂的功能。
相关问答
Q1: (JAVA)下面代码能准确识别出形状名称,并计算出形状的面积。请补充完整。
class Circleextends Shape{ //注:圆周率π=3
private double r; //r表示圆的半径;
/* 请补充完整 */
private double area=Math.PI*r*r;
private String getName() {return "Circle";}
}
class Rectangleextends Shape{
private double w,h;
//w、h分别表示长方形的宽和高
/* 请补充完整 */
private double area=w*h;
private String getName()
{return "Rectangle";}
}
Q2: java怎么让代码自动
你说的是Eclipse代码自动补全功能吧。可以实现输入任意字母均可出现代码补全提示框。
具体设置方式如下:
eclipse--windows--preferences--java--editor--content assist--右边设置如下图
红色箭头指向的地方设置为:
.abcdefghijklmnopqrstuvwxyz(26个字母全部写进去不区分大小写)
java自动识别代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java识别二维码、java自动识别代码的信息别忘了在本站进行查找喔。





