Trong MMORoomGroupTest em thấy a có dùng EzyWrap. Sao phải dùng nó và khi nào nên dùng nó ạ?
We want to connect the people who have knowledge to the people who need it, to bring together people with different perspectives so they can understand each other better, and to empower everyone to share their knowledge.
Trong MMORoomGroupTest em thấy a có dùng EzyWrap. Sao phải dùng nó và khi nào nên dùng nó ạ?
Ví dụ trong trường hợp này:
String roomGroupThreadName; doAnswer(invocation -> { roomGroupThreadName = Thread.currentThread().getName(); return null; })
Nó sẽ báo lỗi Local variable roomGroupThreadName defined in an enclosing scope must be final or effectively final
, vì bản chất cái code này nó tương đương với:
doAnswer(new Answer() { final String roomGroupThreadNameFinal = roomGroupThreadName; @Override public Object answer(InvocationOnMock invocation) throws Throwable { roomGroupThreadNameFinal = Thread.currentThread().getName(); return null; } })
Mà biến final thì không thể gán được. Tuy không thể gán được nhưng vẫn có thể gọi hàm được nên mình sẽ sử dụng EzyWrap em ạ
Một trường hợp nữa em có thể sử dụng đó là lấy output của hàm, trong trường hợp em không muốn sử dụng return.
public void doSomething(AtomicReference output) { output.set("Hello World"); }
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Input your email to receive reset password link, or if you remember your password, you can click