【问题标题】:Getting to variable by using an inteface [closed]使用接口获取变量[关闭]
【发布时间】:2016-04-05 14:57:51
【问题描述】:

我有一个接口对象,我们称它为 MyInterface 东西。

我的界面是空的,由两个类实现。

第一个有一个变量 int x,第二个有两个:int x, int y。

变量是私有的,但它们有“get”方法,我知道它们。

是否可以只使用“某物”来获取一个类的变量?

【问题讨论】:

  • 如果您使用的是接口,那么设计不应该需要知道具体的实现。你的设计有缺陷。
  • 我在标签中使用java(应该提到它)。问题是那不是我的设计。我所能做的就是用一个单一的方法编写一个类来获取这个对象“某物”。我必须得到这些变量,但不知道如何。
  • 请分享一些代码以使问题不那么模棱两可。
  • 您可以在接口中添加方法“getX()”和“getY()”,然后在实现类时根据需要实现它们
  • @evadin:如果接口应该公开该值,则将其添加到接口中。

标签: java interface


【解决方案1】:

不,这是不可能的(不包括反射魔法),除非您将 getX() 方法添加到 MyInterface。然后,它很容易,并且具有正确设计的好处。

【讨论】:

  • 正如@khelwood 指出的,您可以将对象强制转换为实现类,无需反射。
  • 确实如此,如果你知道所有可能的实现类,你可以使用if (a instanceof ClassA)...。它仍然不是一个好的设计,但它是这个问题的有效答案。怎么不发呢?
  • 在 OP 澄清问题(并添加一些代码)之前,我认为我无法给出一个好的答案。同意这个设计听起来有缺陷。
  • 反射魔法并不难,但你会从编译器那里得到的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多