Java 我如何让Eclipse识别;内联声明;?

Java 我如何让Eclipse识别;内联声明;?,java,eclipse,Java,Eclipse,我在标题中引用了“内联声明”,因为我的部分问题是我不知道该怎么称呼它。我对Java和一般编程都很陌生,所以“内联声明”这个短语最接近于我对谷歌或其他搜索引擎的描述,我还没有找到任何答案。据我所知,它根本不是一个“声明”(尽管我认为它是,因为我查找了声明、实例化和初始化之间的区别)。希望我能更幸运地解释我在这里的意思 我的意思是:如果我用Java声明一个对象,然后单独初始化它,如下所示: BufferedImage buffImg; buffImg = ImageIO.read("

我在标题中引用了“内联声明”,因为我的部分问题是我不知道该怎么称呼它。我对Java和一般编程都很陌生,所以“内联声明”这个短语最接近于我对谷歌或其他搜索引擎的描述,我还没有找到任何答案。据我所知,它根本不是一个“声明”(尽管我认为它是,因为我查找了声明、实例化和初始化之间的区别)。希望我能更幸运地解释我在这里的意思

我的意思是:如果我用Java声明一个对象,然后单独初始化它,如下所示:

    BufferedImage buffImg;
    buffImg = ImageIO.read("MyImage.jpg");
    BufferedImage buffImg = ImageIO.read("MyImage.jpg");
然后Eclipse将把对象名(在本例中为buffImg)变成一种特殊的颜色,将其添加到大纲中,并通常将其视为一个对象。它可以对关键字、字符串、注释执行相同的操作。。。你明白了

但如果我做一个“内联声明”,我在一行上声明、实例化和初始化对象,如下所示:

    BufferedImage buffImg;
    buffImg = ImageIO.read("MyImage.jpg");
    BufferedImage buffImg = ImageIO.read("MyImage.jpg");
然后Eclipse不会将它变成那种特殊的颜色,也不会将它添加到大纲中,并且通常将它视为任何随机的、非特殊的单词,只有一个例外:代码高亮显示仍然会在整个代码中挑出该单词的所有实例

那么,我的问题是:

  • 你怎么称呼这种“全在一行”的声明,这样我就知道将来在谷歌应该用什么词了
  • 如何让Eclipse识别它

  • 谢谢大家!

    如果您在方法内部执行第一个示例,那么可能是在大纲中添加buffImg作为警告。您将使其处于未初始化状态,尽管非常短暂。最佳实践是您的多功能声明加上跨单行的初始化。如果无法立即设置局部变量,请将其初始化为null,然后稍后重新分配。

    1.-单语句声明和初始化没有特殊的词语,这是java中初始化变量的常用方法

    2.-我认为您的困惑可能来自字段和局部变量。 Eclipse会突出显示字段,尽管您使用的初始化类型不同,但不会显示局部变量。此外,字段始终显示在大纲中,而局部变量不显示

    关于在Eclipse中识别局部变量,您可能希望查看SO:中的这个答案,以及有关您可能希望查看的局部变量和字段的更多信息:


    问候

    我不知道你所描述的东西有什么特别的名字,尽管它很常见。我不知道为什么你的Eclipse版本会在不同的用途上显示不同的配色方案,这绝对是一个声明。它声明一个变量
    buffImg
    。但是,您没有指定它是本地变量声明还是实例变量声明。实例变量总是初始化的,没有声明但未初始化的实例变量。巧合的是,Eclipse没有为本地变量提供特殊格式,所以这可能是您的情况。@BlackPlanet:“我的Eclipse版本”?这是否意味着您的版本可以识别“内联”类型?我正在使用Indigo-这是该版本的已知错误吗?也许这是一个很好的借口让朱诺…@MarkoTopolnik:在这种情况下,他们都是实例变量。但是,我尝试将声明放在init()方法中(这会将它们转换为本地变量),但是格式化行为没有改变。如上所述,Eclipse仍然无法识别它们,不管它们是实例还是本地的。您可能想看看Eclipse的首选项,特别是
    Java>Editor>Syntax Coloring
    General>Editors>Text Editors>annotation
    (为“引用”和“写入引用”设置颜色),和
    General>Editors>Text Editors>Quick Diff
    。我通常认为概览标尺比一直打开大纲更有帮助,但这当然是相当主观的。具体来说,我正在制作一个小程序,就第一个示例而言,“未初始化”(因为它真正做的是将其初始化为默认值)声明是在类(文件命名后的类)内立即完成的。第二行,单独的初始化,是在init()方法中完成的。感谢您确认我最初的假设“inline”way是最佳实践,因为两次初始化似乎很愚蠢,这样做会浪费很多垂直空间,而您可以一次完成所有操作。我只是希望我可以告诉Eclipse!我相信您是说第一个示例中的两行是分开的。第1行在类块中;第2行在init方法中。在这种情况下,buffImg是一个类字段声明。此时不进行初始化是完全可以的。它正在被更改颜色并添加到类型大纲(或任何它的名称)中,因为它被识别为字段。在第二个示例中,如果您在init()中执行了整行操作方法,则buffImage是本地引用。对您来说没有颜色变化。叹气。Eclipse是如此的颜色变化…至少我仍然可以得到汤。谢谢信息=)您仍然可以更改颜色。Windows->Preferences->Java->Editor->Syntax color。在元素textarea/树中,选择Java->Local variable declarations。选中Enable。根据您的心意编辑颜色和字体样式。如果您愿意,局部变量引用也可以。它们仍然不会出现在大纲中。啊哈!我明白了。感谢您的支持r、 和有用的链接!