【问题标题】:How to use static import on classes of same package in Java如何在Java中对同一包的类使用静态导入
【发布时间】:2019-11-04 05:33:43
【问题描述】:

在我的项目包“pypapo.alphabet”中,我想要一个包含所有常用变量(路径、目录、文件、常量等)的类“alphabetStatic”作为整个项目的静态最终字段。 为了在每次访问其中一个静态最终字段时不使用“alphabetStatic”前缀填充其他类的代码,我想执行某种“导入静态alphabetStatic”。 我知道 import static 语句是指包的类。但是这样可以导入类的字段吗?

【问题讨论】:

  • 不相关:java 类名总是大写!
  • 自然而然。这是在将我的真实项目转换为 Stack Overflow 合适的虚构名称时发生的 :)

标签: java import static package


【解决方案1】:

我知道 import static 语句是指一个类 包。

不是真的。它指的是static 一个类的成员。
您可以将 import static 与 fullquafiliedclassname.*(表示类的任何静态成员)或类的特定静态字段或方法一起使用。

例如,要对类的特定静态字段或方法进行导入static,语法如下:

import static packages.Clazz.fieldOrMethod;

1) 静态字段示例

所以你可以导入静态 out 字段形式 System

import static java.lang.System.out;

并使用它:

out("...");

1) 静态方法示例:语法相同。

import static org.junit.jupiter.api.Assertions.assertEquals*;

并使用它:

assertEquals(expected, actual);

3) 类的所有静态成员

只需用通配符作为后缀:

import static org.junit.jupiter.api.Assertions.*;

【讨论】:

  • 谢谢埃德! :) 确实。以我目前的活动水平,这需要时间,但你现在知道这个寓言了:“龟兔赛跑”:) 现在是谁 :)
  • 非常感谢这个故事。这看起来很愉快,但结局是:野兔的悲惨结局。 ..这让我想起了“刺猬索尼克”和它的妻子(如果有的话……)。对于一方面的摔跤手和另一方面的 Megadrive 标志性游戏之间的糟糕参考,我感到非常抱歉!无论我会试图找到你寓言的法语版本:)“质量胜于数量”。不同意怎么办?但亲爱的,你都做到了。所以这对你来说没有错:)
【解决方案2】:

没有什么能阻止您从 inside 包 X 导入包 X。

所以

import static status pypapo.alphabet.alphabetStatic.*;

肯定适合你。

【讨论】:

    【解决方案3】:

    试试这个:

    import static pypapo.alphabet.AlphabetStatic.*;
    

    请注意,Java 中的类名必须以大写字母开头。

    【讨论】:

    • 感谢您的快速回答。事实上,我忘记将 package 语句添加到 Alphabet 类本身,这在之前阻止了这一尝试。
    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 2023-03-11
    • 2018-02-18
    • 1970-01-01
    • 2013-01-02
    • 2020-09-06
    • 2023-01-03
    • 2019-12-10
    相关资源
    最近更新 更多