2010-05-06 27 views
6

Là phần mở rộng của câu hỏi "Modify/view static variables while debugging in Eclipse", tôi muốn có thể sửa đổi các biến tĩnh trong khi gỡ lỗi trong Eclipse.Sửa đổi các biến tĩnh trong khi gỡ lỗi trong Eclipse

Ví dụ và biến cục bộ, tôi chỉ có thể chọn biến trong chế độ xem "Biến" của Eclipse và sử dụng menu ngữ cảnh "Thay đổi giá trị ..." để thay đổi giá trị.

Điều này là không thể cho các biến tĩnh tùy ý, vì chúng không xuất hiện trong chế độ xem "Biến".

gì tôi đã cố gắng:

  1. Nếu bạn chọn "Java/Hiện biến tĩnh" từ menu tam giác trong giao diện "biến", bạn có thể xem và chỉnh sửa các biến thành viên tĩnh của các biến được liệt kê trong " Chế độ xem biến ". Tuy nhiên, tôi không tìm thấy cách truy cập một thành viên tĩnh của một lớp mà cá thể của nó không xuất hiện trong khung nhìn "Biến".
  2. Tất nhiên, bạn có thể nhập thành viên tĩnh làm biểu thức vào "Chế độ xem biểu thức" (sử dụng tên đủ điều kiện). Sau đó, bạn có thể thấy giá trị, nhưng "Chế độ xem biểu thức" không có tùy chọn để sửa đổi giá trị (nó không cho phép sửa đổi thành viên của một biểu thức, nhưng không thay đổi biểu thức, ngay cả khi biểu thức là trường).

Vì vậy, nếu tôi có biến tĩnh như MyClass.disableAllBugs boolean, có cách nào để thay đổi MyClass.disableAllBugs trong khi gỡ lỗi không?

Là một sang một bên: Tôi nhận ra rằng thậm chí có các trường tĩnh có thể thay đổi công khai (tức là biến toàn cầu có thể thay đổi) là kiểu rất xấu. Nhưng một số codebases có nó, và sau đó nó đôi khi hữu ích để sửa đổi nó trong khi gỡ lỗi.

Trả lời

6

Bạn có thể viết một dòng tạm thời SomeClass.myStaticVar = newValue;, chọn nó, nhấp chuột phải và "thực thi" nó.

+0

Bí quyết tuyệt vời. Đôi khi tôi làm điều đó để gọi phương thức thủ công trong khi gỡ lỗi (ví dụ: printStackTrace() cho một ngoại lệ). Tuy nhiên tôi không nghĩ về nó trong bối cảnh này. – sleske

+0

Nếu đó là trường tĩnh riêng thì sao? – RAY

+0

@RAY Chỉ muốn xác nhận rằng điều này không hoạt động cho các trường tĩnh riêng tư. – nerdherd

Các vấn đề liên quan