2015-12-31 60 views
-6

我有一個接口對象,我們稱之爲MyInterface東西。通過使用接口獲取變量

我的界面是空的並且由兩個類實現。

首先有一個變量int x,第二個兩個:int x,int y。

變量是私人的,但他們有「得到」方法,我知道他們。

是否可以通過使用「something」來獲得類的變量?

+2

如果您使用的是接口,那麼設計不應該*需要知道具體的實現。你的設計有缺陷。 – David

+0

我使用java作爲標籤(應該提到它)。問題是這不是我的設計。我所能做的就是寫一個帶有sigle方法的類來獲得這個對象的「東西」。我必須得到這些變數,但不知道如何。 – evadin

+0

請分享一些代碼以減少問題的含義。 –

回答

1

不,這是不可能的(不包括反射魔術),除非您將getX()方法添加到MyInterface。然後,它很容易,它有一個正確設計的好處。

+0

@ khelwood指出,你可以將對象轉換爲實現類,不需要反射。 –

+0

果然,如果你知道所有可能的實現類,你可以使用'if(ClassA的一個實例)...'。它仍然不是很好的設計,但它是對這個問題的一個有效的答案。你爲什麼不發佈它? –

+0

我不認爲我可以在OP澄清問題之前給出一個好的答案(並添加一些代碼)。同意這個設計聽起來有缺陷。 –