小编eri*_*son的帖子

如何将元素添加到通配符通用集合中?

为什么我用这个Java代码会出现编译器错误?

1  public List<? extends Foo> getFoos()
2  {
3    List<? extends Foo> foos = new ArrayList<? extends Foo>();
4    foos.add(new SubFoo());
5    return foos;
6  }
Run Code Online (Sandbox Code Playgroud)

其中'SubFoo'是实现Foo的具体类,而Foo是一个接口.

我用这段代码得到的错误:

  • 在第3行:"无法实例化ArrayList <?extends Foo>"
  • 在第4行:"方法添加(捕获#1-of?extends Foo)在类型List <capture#1-of?extends Foo>中不适用于参数(SubFoo)"

更新:感谢Jeff C,我可以更改第3行来说"new ArrayList <Foo>();".但我仍然遇到第4行的问题.

java generics

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

使用BlockingQueue时是否需要额外的同步?

我有一个简单的bean @Entity Message.java,它有一些正常的属性.该对象的生命周期如下

消息的实例化发生在线程A上,然后它被排入阻塞队列

池中的另一个线程获取该对象并使用它执行一些操作并更改Message的状态,之后,对象再次进入blockingQueue.重复该步骤直到条件使其停止.每次对象获取读/写时都可能来自不同的线程,但保证一次只有一个线程可以读/写.

鉴于这种情况,我是否需要同步getter/setter?也许这些属性会变化?或者我可以不同步而离开?

谢谢,希望我能澄清一下我在这里有什么.

java multithreading synchronization

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

如何使用排序键将java.util.Properties写入XML?

我想将属性文件存储为XML.有没有办法在执行此操作时对键进行排序,以便生成的XML文件按字母顺序排列?

String propFile = "/path/to/file";
Properties props = new Properties();
/*set some properties here*/
try {
    FileOutputStream xmlStream = new FileOutputStream(propFile);
    /*this comes out unsorted*/
    props.storeToXML(xmlStream,"");
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

java xml

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

什么是各种平台的保留文件名?

我不是在询问文件名的一般语法规则.我的意思是陷入困境并陷入困境的陷阱.例如,尝试在Windows上命名文件"COM <n>"?

filesystems naming

13
推荐指数
4
解决办法
7350
查看次数

CGEventPost - 模拟键盘事件时可能出现的错误?

我有一个非常简单的代码块,用于模拟键盘事件.下面的简单例子应该输入"Cz" - 换档键下降,c键下降,c上升,换档上升.然后z键向下和向上.

看来有时订单会变得混乱.当我创建一个计时器来每秒调用这个例程时,输出应该是CzCzCzCz ....但这是我得到的:

CZcZCZCzczCzczCzczCZCZCzCz

我会再次运行它:

CzCzCzCzCZCzCZCzCZCzCZCzCZCzCzCz

不同.同样错了.

代码:

e1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, true);
CGEventPost(kCGSessionEventTap, e1);
CFRelease(e1);
e2 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)8, true);
CGEventPost(kCGSessionEventTap, e2);
CFRelease(e2);
e3 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)8, false);
CGEventPost(kCGSessionEventTap, e3);
CFRelease(e3);
e4 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, false);
CGEventPost(kCGSessionEventTap, e4);
CFRelease(e4);

e7 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)6, true);
CGEventPost(kCGSessionEventTap, e7);
CFRelease(e7);
e8 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)6, false);
CGEventPost(kCGSessionEventTap, e8);
CFRelease(e8);
Run Code Online (Sandbox Code Playgroud)

在如何实现shift键的keydown和keyup时,我是否缺少一些东西?我认为这可能是一个错误 - 我会在哪里举报?

macos quartz-graphics

13
推荐指数
2
解决办法
8004
查看次数

如何避免使用Java ServerSocket阻塞?

我正在研究一个套接字监听器,它必须在2个端口上侦听2种类型的数据(端口80和端口81).这些数据与对数据执行的操作类型非常相似,只是因为它们到达不同的端口而不同.我继续使用Java的ServerSocket类编写实现,但后来才意识到ServerSocket类的accept()方法是块,我的实现无法承受.所以现在我正在考虑使用Java NIO实现相同的功能,但在完成了一些教程之后,我认为我比我开始时更困惑.如果这里的某个人可以引导我完成整个过程,即使它是伪代码或技术"下一步该做什么",那将是很棒的.这就是我打算实现的目标.

通过调用2个类似的线程来监听,就像永远在2个端口上一样.(非阻塞)来自某个网​​络位置的远程设备连接,发送数据然后断开连接.

我想如果只知道如何使用NIO设置服务器来监听端口,那么就可以实现localhost上的端口80,其余的都很容易实现.

干杯

java sockets concurrency nonblocking

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

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

Java File方法"canWrite()"可以支持锁定吗?

我有一个Java应用程序,它监视传入XML文件的文件夹.检测到新文件时,我需要测试文件当前未更新并关闭.我的想法是使用File.canWrite()来测试它.这样做有什么问题吗?这是测试文件是否已完全写入的好方法吗?

我投掷的其他想法是:

  • 解析传入的XML文件并测试结束标记是否存在.
  • 检查EoF角色.

我只是不确定这些方法中的任何一种都能处理所有场景.

java xml file-io

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

Spliterator什么时候应该停止分裂?

我知道设置并行处理会有开销,Stream如果项目很少或者每个项目的处理速度很快,单个线程中的处理速度会更快.

但是,是否存在类似的阈值trySplit(),将问题分解为较小的块会产生相反的效果?我在想类似于合并排序切换到最小块的插入排序.

如果是这样,阈值是否取决于过程中物品的相对成本trySplit()消耗tryAdvance()?例如,考虑一个分裂操作,它比推进数组索引要复杂得多 - 分割一个词法排序的多集排列.是否存在允许客户在创建并行流时指定拆分下限的约定,具体取决于其使用者的复杂程度?启发式Spliterator可以用来估计下限本身吗?

或者,或者,让a的下限为Spliterator1 是否总是安全的,让工作窃取算法负责选择是否继续拆分?

java parallel-processing concurrency fork-join spliterator

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

无法摧毁Java中的数据

无论如何在Java中删除数据(例如,变量值,对象)并确保它无法从内存中恢复?分配null给Java中的变量是否会从内存中删除值?有任何想法吗?适用于其他语言的答案也是可以接受的.

java security

11
推荐指数
2
解决办法
2181
查看次数