2010-10-29 45 views
7

Tóm lại, tôi đang cố gắng làm nghịch đảo của "classObject.getDeclaredClasses()".Lấy đối tượng lớp ngoài từ đối tượng lớp bên trong

Tôi có phương thức nhận đối tượng thuộc loại Class<? extends Object>. Tôi muốn tìm ra cho dù đó là một lớp bên trong, và nếu có, tôi muốn truy cập thể hiện đối tượng của lớp xung quanh.

Có API thông minh cho điều này hay không, tôi có bị buộc phải thực hiện một số thao tác và phân tích chuỗi không?

Trả lời

20

Bạn đang tìm kiếm phương pháp Class.getDeclaringClass():

public class getDeclaringClass()

Nếu lớp hoặc giao diện được đại diện bởi đối tượng Class này là thành viên của lớp khác, trả về đối tượng Class đại diện lớp mà nó được tuyên bố là . Phương thức này trả về null nếu lớp hoặc giao diện này không phải là thành viên của bất kỳ lớp nào khác. Nếu đối tượng Class này đại diện cho một lớp mảng, một kiểu nguyên thủy, hoặc void, thì phương thức này trả về null.

Returns: lớp tuyên bố cho lớp này

+0

Ugh, tôi cảm thấy ngu ngốc. Tất nhiên tôi đang tìm kiếm điều này. Cảm ơn! –

1

Tham chiếu Outer Lớp Instance Từ Inner Lớp Mã

Nếu mã lớp bên cần một tham chiếu đến dụ lớp bên ngoài mà nó được gắn vào, sử dụng tên của các lớp bên ngoài, một dấu chấm, và

* remember that if there is no name conflict, there is no need for any special syntax 
* for code in MyInner to obtain a reference to its MyOuter: 

    MyOuter.this 

lớp Nội tĩnh này

Một lớp bên trong có thể được đánh dấu là tĩnh

Một lớp bên trong tĩnh của tôi được khởi tạo mà không cần một thể hiện của lớp bên ngoài

* static members of the outer class are visible to the inner class, no matter what their access level 
* non-static members of the outer class are not available, since there is not instance of the outer class to retrieve them from 
Các vấn đề liên quan