相关疑难解决方法(0)

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

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

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

java groovy default-package

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

如何从默认包导入类

可能重复:如何访问default-package中的java-classes?


我正在使用Eclipse 3.5,我创建了一个包含一些包结构和默认包的项目.我在默认包中有一个类 - Calculations.java,我想在任何一个包中使用该类(例如in com.company.calc).当我尝试使用默认包中的类时,它给了我一个编译器错误.它无法识别默认包中的类.问题出在哪儿?

Calculations.java - 源代码

public class Calculations {
    native public int Calculate(int contextId);
    native public double GetProgress(int contextId);
    static  {
        System.loadLibrary("Calc");
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能把我的班级放在任何其他包中.这个类有一些在Delphi中实现的本机方法.如果我将该类放在任何文件夹中,我将不得不对我想要避免的DLL进行更改(实际上 - 我不能).这就是为什么我把我的类放在默认包中.

java java-native-interface native-methods default-package

90
推荐指数
5
解决办法
14万
查看次数

为什么我的对象不是包<root>的成员,如果它在一个单独的源文件中?

我在访问根包中定义的对象时遇到问题.如果我将所有代码都放在一个文件中,它可以正常工作,但是当我将它分成两个文件时,我无法通过编译器.

这很好用:

所有在一个文件中称为packages.scala:

object Foo
  val name = "Brian"
}

package somepackage {
  object Test extends App {
    println(Foo.name)
  }
}
Run Code Online (Sandbox Code Playgroud)

见证人:

$ scalac packages.scala
$ scala -cp . somepackage.Test
Brian
Run Code Online (Sandbox Code Playgroud)

但是如果我将代码分成两个文件:

packages.scala

object Foo {
  val name = "Brian"
}
Run Code Online (Sandbox Code Playgroud)

packages2.scala

package somepackage {
  object Test extends App {
    println(Foo.name)
  }
}
Run Code Online (Sandbox Code Playgroud)

一切都失败了:

$ scalac packages.scala packages2.scala
packages2.scala:3: error: not found: value Foo
Run Code Online (Sandbox Code Playgroud)

所以我尝试引用Foo绝对:

...
    println(_root_.Foo.name)
...
Run Code Online (Sandbox Code Playgroud)

但这也不起作用:

$ scalac packages.scala packages2.scala
packages2.scala:3: error: object …
Run Code Online (Sandbox Code Playgroud)

scala packages

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

scala:无法从根范围导入对象

我有以下代码:(src/main/scala/coins/coins.scala)

object Main extends App { 

  def countChange(money: Int, coins: List[Int]): Int = {
  [...]
Run Code Online (Sandbox Code Playgroud)

我试图从这样的测试中引用它:(src/test/scala/coins/CoinsSuite.scala)

package coins

import org.scalatest.FunSuite

class CoinsSuite extends FunSuite {

  import Main.countChange
  test("only onw way to pay $0") {
  [...]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

找不到:值Main [error] import Main.countChange

但另一方面,从一个sbt控制台它工作正常

如果我在主文件中声明任何包,比如

package x

object Main extends App { 
  Console.println("Hello World!")
Run Code Online (Sandbox Code Playgroud)

然后我可以正确地发出import x.Main.countChange

root包或者我不知道的单例对象可见性是否存在限制?

- 添加

只是为了完成答案,SO上有几个有用的链接

/sf/answers/142111161/

/sf/answers/687554871/

/sf/answers/687555921/

import scala packages

9
推荐指数
1
解决办法
7138
查看次数

在默认包中的JAR文件中导入类

我如何在这里使用Queue?

我无法让导入工作,因为Queue.class不在包中.

我已经尝试过这个宇宙中的一切,等等.

图片 http://i.stack.imgur.com/AFrrc.jpg

java eclipse import

3
推荐指数
1
解决办法
5725
查看次数

java中的全局变量

我想在java中创建一个可以访问项目中所有其他类的类.

我在默认包中创建了它,现在无法看到.在java中执行此操作的最佳方法是什么?

java global-variables

2
推荐指数
1
解决办法
509
查看次数