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

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 ,是两个孤立的类,就没打算让我们使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值