我是个新手,遇到了一些不寻常的东西。在我所经历的一个程序中,applet html tag在Applet Java file (.java)中被提到为一个注释,但是这个注释似乎正在被执行。这怎麽可能?
代码:
import java.awt.*;
import java.applet.*;
/*<applet code="MyApplet" width=100 height=50></applet> */
//why we give comment here and how it is executed ??
class MyApplet extends Applet
{
public void paint(Graphics g)
{
g.drawString("A Simple Applet",100,100);
}
}评论:/*<applet code="MyApplet" width=100 height=50></applet> */自动回复
上述评论是如何执行的?注释不是应该跳过的吗?
为什么Oracle或其他网站没有提到这种方法?甚至Oracle也要求创建单独的HTML文件。那么,这个方法是否使用第三方库来执行注释呢?
当我不公开类并且保持文件和类名不同时,我也会收到一个错误。
有人能解释一下这个方法吗?我在googled上搜索了很多,但是对于这种将标记包含在注释中的方法,却找不到任何解释。这上面有个帖子,但答案还不够。请帮帮忙。
怎么会有人不小心发现这是可能的呢?这是Applet类的特殊特性吗?
发布于 2016-11-12 04:09:24
但是它如何覆盖通常跳过注释行的机制呢?
你认为是编译器而不是小程序查看器。不同的工具,以不同的方式工作。
它也解析注释吗?
AFAIU applet查看器只解析Java源代码(注意,源代码,而不是二进制代码),直到类定义。通过设计,它会忽略注释中没有的任何代码,并且只检查注释代码中是否有可能的applet标记。这个新功能是在Java1.7或1.6afair附近引入的。
我没有明白这一点--“通过设计,它忽略了任何不在评论中的代码”。这是否意味着它只查找注释,然后进一步选择带有applet标记的注释?
抱歉,现在你再跟我说一遍,还不清楚。“这是否意味着它只查找注释,然后进一步选择带有applet标记的注释?”是啊。谢谢,这是一个更好的方式来表达我的意思。
最后,我将添加一些@zakki的评论,我认为这些评论信息太丰富,无法隐藏在评论部分中:
@zakki:我认为
appletviewer MyApplet.java将MyApplet.java解析为MyApplet.java,而忽略了import java.awt.*;等不受支持的元素。AppletViewer标签 @zakki:appletviewer似乎只是将输入作为令牌流来处理,它不关心java/html语法。gist.github.com/zakki/b5176a7d37fa3938f0646d11d9bd01a5
https://stackoverflow.com/questions/40536869
复制相似问题