您的位置:首页 > 其它

一个有关package的错误: 没有包名的类

2016-05-20 15:13 162 查看
Akka/play(activator)2.5.3
创建工程

2016-5-20

一个有关package的错误

写了一个类 AkkaSystem,用于处理一些actor相关的一些静态方法。
为了方便,把这个类直接放在了
app 目录下,
这样编译好了以后,play会把相应的class文件放在target/scala-2.11/classes
目录下。
这个类就没有package包名字。

这个类本身没有问题。问题出在引用上。

在 app/controllers/MyController.java
中有一行这样的代码:
future= Patterns.ask(AkkaSystem.getMyActorPoolActorRef(),messages, 1000);

编译时候,出现类似的错误:
[error]/tmp/demo/mytest/app/controllers/MyController.java:33: cannot findsymbol
[error] symbol: variable AkkaSystem
[error] location: class controllers.MyController
[error] Future<Object> future =Patterns.ask(AkkaSystem.getMyActorPoolActorRef(), messages, 1000);
[error](compile:compileIncremental) javac returned nonzero exit code

一直搞不清楚错在哪里,直到把类
AkkaSystem
挪到了一个目录下。
查询了一下,了解到java
关于 类管理的一个细节。

没有包名字限制的类,只能被没有包名限制 且 在同一个目录下的类 引用。
也就是说,
没有包名字限制的类,不能被有包名字的类引用。

这么看,app目录下的由play自建的 两个类
Module Filters
,是两个孤立的类,就没打算让我们使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: