我正在使用具有C#API的RF阅读器设备.基于其API,您需要手动调用其读取功能来读取/标记卡片.
所以我的解决方法是使用Timer每隔'n'秒执行一次读取.
我的问题是Timer连续执行,无论Thread.sleep()是否在其内部调用.
Timer timer = new Timer(TimerCallback, null, 500, 1000); // From main() method
// The action that Timer executes
private void TimerCallback(Object o)
{
scan(); // Action for reading/badging card
scand.WaitOne(); // AutoResetEvent(true)
GC.Collect(); // Force garbage collection
}
Run Code Online (Sandbox Code Playgroud)
Thread.sleep()在scan()内部调用.
在Java中,我使用synchronized()来等待另一个线程调用invoke().我搜索了一整天,我看不到一个与ScheduledExecutorService和synchronized()等效的解决方法.
我希望有一个解决方法,因为我需要尽快解决这个问题.
谢谢!
我在大约1年时间里使用JPA作为数据库框架开发Java系统.
每次我查询时,我都不关闭EntityManager,IMO的理解是JPA 在执行查询之后会自动关闭EntityManager
getSingleResult()或getResultList()
如果没有那么垃圾收集会收集它来处置?
在JPA中,Type of Query返回泛型类型对象,需要将其转换为指定的数据类型.我最近看到了另一个Query实例,它是TypedQuery.TypedQuery确保query.getSingleResult()或query.getResultList()将具有指定的泛型类型.(例如,TypedQuery<String>将对象作为String返回).
我的问题是在获取结果为byte array(byte[])时将提供泛型类型?我正在使用此字段存储图像.
谢谢!
在多行if条件下,我想知道我们是否遵循放置逻辑运算符(&&, ||)的约定,或者是否只是一个偏好。
if假设我们有下面这种情况:
Bird bird = new ...; // Some bird species
if (!bird.canFly() && bird.hasWings() && bird.hasFeathers() && bird.canSwim() || ...) {
...
}
Run Code Online (Sandbox Code Playgroud)
对于上面的长if条件,为了可读性,我们可能会做一个多行if条件。
对于逻辑运算符,我们把它们放在哪里?是在左边还是在右边?
就我个人而言,我将它们放在左侧,以便我知道在以下情况下使用哪个运算符。
我这样做是对还是错?