Tôi có một chức năng Java gọi testForNullCó cách nào trong Java để tìm tên biến được chuyển đến một hàm không?
public static void testForNull(Object obj)
{
if (obj == null)
{
System.out.println("Object is null");
}
}
tôi sử dụng nó để kiểm tra nhiều đối tượng để đảm bảo chúng không phải là null. Nhưng, tôi không thể nói tên của biến theo cách đó.
Ví dụ: nếu tôi nói
testForNull(x);
testForNull(y);
testForNull(z);
Tôi không thể biết được ba dòng nào gây ra đầu ra "Đối tượng là rỗng". Tất nhiên, tôi chỉ có thể thêm tham số khác đến chức năng và có cái gì đó như
testForNull(x, "x");
testForNull(y, "y");
testForNull(z, "z");
Nhưng tôi muốn biết liệu chúng ta có thể suy ra tên của biến mà không đi qua nó một cách rõ ràng. Cảm ơn.
Không ngay cả với [phản chiếu] (http://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable). – paislee
Không có gì trong ngôn ngữ để giải thích cho việc này. Tuy nhiên, tôi tưởng tượng nó có thể được thực hiện với một công cụ xử lý bổ sung (ví dụ: kiểm tra/sửa đổi bytecode). Ngoài ra, sử dụng một công cụ có thể chèn các mẫu thích hợp tự động điền với các giá trị phù hợp ;-) –
tuyên bố của bạn 'Tôi không thể biết được ba dòng nào gây ra đầu ra "Object is null". chỉ đúng trong đầu ra của bạn. Bạn có thể sử dụng ngoại lệ mới ("đối tượng là null") printStackTrace để tìm ra chính xác vị trí của nó, hoặc bạn có thể sử dụng trình gỡ lỗi và đặt điểm ngắt tại đó. Điều này trông giống như một cái gì đó mà kêu gọi đăng nhập tốt hơn, hoặc một trình gỡ lỗi, thay vì một tính năng ngôn ngữ. –