我有这个代码:
class Patient {
@Inject Syringe syringe;
@PostConstruct
void sayThankyouDoc() {
System.out.println("That hurt like crazy!");
}
}
@RunWith(MockitoJUnitRunner.class)
class TestCase {
@Mock
Syringe siringeMock;
@InjectMocks
Patient patient;
//...
}
Run Code Online (Sandbox Code Playgroud)
我希望Mockito能够调用PostConstruct,但我必须添加:
@Before
public void simulate_post_construct() throws Exception {
Method postConstruct = Patient.class.getDeclaredMethod("sayThankyouDoc", null);
postConstruct.setAccessible(true);
postConstruct.invoke(patient);
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
阅读几个线程(常见的并发问题,volatile关键字,内存模型)我对Java中的并发问题感到困惑.
我有很多字段可以被多个线程访问.我是否应该通过它们并将它们标记为易变?
在构建一个类时,我不知道多个线程是否会访问它,所以让任何字段都不易变化是不安全的,所以根据我的理解,你很少会使用它.它是否正确?
对我来说,这是特定于版本1.5 JVM及更高版本,但不仅限于回答我的具体设置.
我们希望比较不同环境(Windows,Solaris,...)中相同Java版本(1.5)的不同JVM的一般性能(CPU,I/O,网络......).
您知道任何可用于比较不同JVM结果的JVM基准测试应用程序吗?
非常感谢你.
在构建Java Applet时,是否有任何可以阻止用户调用内部方法的步骤?
从理论上讲,可以分析大多数对象,并可以在客户端计算机上调用方法.
除了混淆之外还有其他任何可以帮助防止这种情况的步骤吗?
我的情况是确保从客户端直接发送最高分的游戏.
IBM支持上的多个页面似乎在JAX-RS是否内置于WebSphere 8.5中有所不同.
http://www.ibm.com/developerworks/websphere/techjournal/1305_gunderson/1305_gunderson.html
最新版本的IBM WebSphere Application Server提供对JAX-RS的支持.WebSphere Application Server V8.5支持内置的JAX-RS; 无需额外安装.
要开发JAX-RS应用程序,必须将JAX-RS库添加到类路径定义中.请参阅组装工具的信息,以了解如何在JAX-RS应用程序的类路径中包含库.
在WebSphere 8.5上运行JAX-RS需要做些什么.是否需要web.xml映射?是否需要其他库文件?
我想在密码区域中显示"密码"作为文本,并且当聚焦时,该框应该变为空并允许来自用户的正常密码(加星标)输入.
目前我使用以下方法.最初我显示一个显示密码的文本字段,当焦点被删除并替换为密码字段时.这是jQuery:
$(document).ready(function() {
$("#password").focus( function() {
$("#pwd").html('<input type="password" id="password" name="password" value="" />');
$("#password").focus();
});
});
Run Code Online (Sandbox Code Playgroud)
这适用于Firefox和Chrome,但在IE 8(可能是其他IE)中失败,因为焦点调用由于某种原因失败(可能DOM没有准备好?).
有任何想法吗?
我有两个java对象,我想将它们合并到单个对象中.问题是两个对象不包含普通原始类型属性(字段),它们包含复杂类型属性(如其他类型的对象和其他类型的对象列表).
对象1:通过设置一些属性(字段)和返回
对象2:通过设置一些属性(字段)返回,或者它可以返回它所拥有但不被对象1返回的类型的新对象.
对象1和对象2都是相同类型的.
结果对象3 = obj1属性+如果类型与obj1相同,则更新obj 2中的属性+来自obj2的新更新对象
是否有关于大多数人在WWW上使用的Java版本的网站/分析?似乎这些数据在网络服务器日志中不可用(与Flash版本相比)
我们可以安全地将Java 1.4.2设置为我们的applet的最低要求,还是有许多用户使用Java 1.1(MS one)或Java 1.2-1.3?
如果它太旧了,那么更新Java仍然是一个复杂的过程,例如Windows机器上需要管理员权限,而且在某些Linux发行版中也很难.
我目前成功保持以下对象:
我现在想创建第三个表格考试结果.对于这个表,我认为它应该是人员ID,考试ID和结果,这是一个多对多的关系.
@Entity
public class ExamResult {
private Exam exam;
private Person person;
private double value;
@Id
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinColumn(name="EXAM_ID")
public Exam getExam() {
return exam;
}
public void setExam(Exam exam) {
this.exam = exam;
}
@Id
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinColumn(name="PERSON_ID")
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public double getValue() {
return value;
}
public void setValue(double …Run Code Online (Sandbox Code Playgroud) 我用@Singleton,@ Schedudu和@Timeout注释创建了一个简单的例子来试试它们是否可以解决我的问题.
场景是这样的:EJB每5秒调用一次'check'函数,如果满足某些条件,它将创建单个动作计时器,以异步方式调用一些长时间运行的进程.(这是一种队列实现类型的东西).然后它继续检查,但是在长时间运行的过程中,它不会启动另一个.
下面是我提出的代码,但是这个解决方案不起作用,因为它看起来像我正在制作的异步调用实际上阻止了我的@Schedule方法.
@Singleton
@Startup
public class GenerationQueue {
private Logger logger = Logger.getLogger(GenerationQueue.class.getName());
private List<String> queue = new ArrayList<String>();
private boolean available = true;
@Resource
TimerService timerService;
@Schedule(persistent=true, minute="*", second="*/5", hour="*")
public void checkQueueState() {
logger.log(Level.INFO,"Queue state check: "+available+" size: "+queue.size()+", "+new Date());
if (available) {
timerService.createSingleActionTimer(new Date(), new TimerConfig(null, false));
}
}
@Timeout
private void generateReport(Timer timer) {
logger.info("!!--timeout invoked here "+new Date());
available = false;
try {
Thread.sleep(1000*60*2); // something that lasts for a bit
} …Run Code Online (Sandbox Code Playgroud)