相关疑难解决方法(0)

如何访问default-package中的java-classes?

我现在和其他人一起在grails项目中工作.我必须编写一些Java类.但我需要访问使用groovy创建的可搜索对象.看来,这个对象必须放在default-package中.

我的问题是:有没有办法从命名包中的Java类访问default-package中的这个对象?

java groovy default-package

95
推荐指数
3
解决办法
7万
查看次数

在Java中使用默认包导入类的语法是什么?

是否可以在Java中导入默认包中的类?如果是这样,语法是什么?例如,如果你有

package foo.bar;

public class SomeClass {
    // ...
Run Code Online (Sandbox Code Playgroud)

在一个文件中,你可以写

package baz.fonz;

import foo.bar.SomeClass;

public class AnotherClass {
    SomeClass sc = new SomeClass();
    // ...
Run Code Online (Sandbox Code Playgroud)

在另一个文件中.但是,如果SomeClass.java不包含包声明呢?你将如何参考SomeClassAnotherClass

java syntax import

51
推荐指数
4
解决办法
9万
查看次数

49
推荐指数
2
解决办法
3万
查看次数

导入静态没有包名称

考虑以下简单的代码示例:

public class TestStaticImport {
    static enum Branches {
        APPLE,
        IBM
    }
    public static void doSomething(Branches branch) {
        if (branch == APPLE) {
            System.out.println("Apple");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们将尝试编译此代码,我们将收到错误消息:

java: cannot find symbol
  symbol:   variable APPLE
  location: class TestStaticImport
Run Code Online (Sandbox Code Playgroud)

这可以通过引入静态导入来解决enum:

import static ... TestStaticImport.Branches.*

但是在这个时刻(对我来说)难以理解的事情开始了:

这个解决方案工作正常,一切都很好编译,直到类TestStaticImport将被移动到空的根包,即没有任何

package blablabla; 在这个java文件的顶部;

代码行:import static TestStaticImport.Branches.*;在我的Intellij IDEA中突出显示为有效代码(IDE的名称无关紧要,仅供参考),但当我尝试编译此类代码时出现以下错误:

java: package TestStaticImport does not exist

所以,实际上有两个问题:

1)主要问题:为什么不能import static从空目录?

2)除了静态导入之外,允许使用其名称(即APPLE代替Branches.APPLE)的枚举字段的代码引用的另一种方式(如果存在)是什么?


PS请不要告诉我,空包装是丑陋的风格等等.这个问题只是理论问题.

java importerror

10
推荐指数
2
解决办法
3188
查看次数

如何在Eclipse内的JAR文件中引用类和方法?

基本上,我希望使用Jar文件中的类的方法,如下所示:

IDE屏幕截图

有人可以告诉我使用这些方法和变量需要导入什么吗?

java eclipse

5
推荐指数
1
解决办法
6819
查看次数