小编Tin*_*ate的帖子

实现接口并扩展实现相同接口的类?

可以实现接口并扩展实现相同接口的类会导致任何问题吗?(混淆除外)

例如:

interface IDo
public abstract class DoIt implements IDo
public class IllDo extends DoIt implements IDo
Run Code Online (Sandbox Code Playgroud)

(请忽略它似乎错了)

java interface

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

带有 lombok 的 Bndtools“包含一个未知容器”

我终于完成了将我的应用程序的一部分移动到 osgi 包中并在我的主机应用程序中使用这些包。这真的很好用!

目前,我正在使用 bndtools 清理我的 eclipse 工作区并消除警告。

我无法摆脱的一个警告是:

Eclipse: The .classpath contains an unknown container: org.eclipse.jdt.USER_LIBRARY/lombok
Run Code Online (Sandbox Code Playgroud)

我在我的一些包中使用 lombok。我只是将它添加到项目属性 > java 构建路径 > 库选项卡中。很好用,因为 lombok 是一个用于 eclipse 编译时的库。但这里的问题是我确实收到了上述警告。

我在本地 bndtools 存储库(存储库视图)中添加了一些外部 jar(带有捆绑信息),然后可以将这些 jar 添加到 bndtools 构建路径中,例如 gson。

但是 lombok 似乎没有任何 osgi bundle 信息,因此将其添加到本地存储库会给我一个错误“Jar 没有符号名称”。

当然我可以编辑 lombok.jar 并添加包信息。但我想知道是否有更清洁的方法来做到这一点?

java osgi lombok bndtools

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

使用DataOutputStream发送一个0字节?

我正在为现有客户端创建服务器.此客户端使用套接字和DataInputStream从服务器读取输入.它使用以下命令检查服务器消息的结束:

byte c = in.readByte();
if( c == 0) { //the end.
Run Code Online (Sandbox Code Playgroud)

在服务器上,我使用serversocket和DataOutputStream向客户端发送消息:

out.write(bytes[])
Run Code Online (Sandbox Code Playgroud)

如何发送0字节,以便客户端知道它是消息的结束?

java sockets dataoutputstream

0
推荐指数
1
解决办法
322
查看次数

只用当前时间每秒执行一次代码?

如何仅使用当前时间每秒执行代码?(没有额外的变量,它没有完全每一秒,我很满意800到1200毫秒之间的变化)

我试过了:

//code repeated every 30-100ms
if ((System.currentTimeMillis() % 1000) == 0) { //execute code
Run Code Online (Sandbox Code Playgroud)

但这不起作用,导致currentTimeMillis可以精确除以1000的可能性不是很高.

关于这个问题有什么好主意吗?

[编辑]请注意我的"无额外变量"评论.让我解释一下:我需要把这段代码放在一个我只有一个长值的地方,表示自1970年以来的unix时间(currentTimeMillis的值).我记不起任何东西,也无法保存下次执行代码时可以访问的额外变量.这是一个特例.

java algorithm

0
推荐指数
1
解决办法
122
查看次数