访问已实现类中的实例变量

时间:2018-09-24 08:05:09

标签: java instance-variables implements

我正在完成作业,并且为我提供了一个名为 Place 的界面。 它具有几种已定义的方法,没有变量。 我创建了一个实现 Place 的类,其中包含一个字符串变量 name Place 接口中的所有方法。

public class PlaceImpl implements Place
{
    public String name;
    ...
}

然后我创建一个对象

Place p = new PlaceImpl(placeName);

但是,当我尝试访问p.name时,出现错误“找不到符号”。 我可以通过这种方式访问​​实例变量吗?还是只需要找到其他地方来存储变量? 谢谢

更新:我无法更改Place接口,并且必须使用Place类型的变量与我提供的其余代码集成。

3 个答案:

答案 0 :(得分:0)

由于您无法更改-i --rebase-merges界面来添加org.apache.lucene.wordnet方法,因此请保持WordnetSynonymParser

Analyzer

答案 1 :(得分:0)

您可以通过将name强制转换为PlaceImpl来访问p。 例如,将name分配给字符串变量myName

String myName = ((PlaceImpl) p).name;

很抱歉收到的回复很晚,但是我遇到了同样的问题并弄清楚了。

答案 2 :(得分:-1)

您处在正确的轨道上-如果将代码更改为:

PlaceImp p = new PlaceImp(placeName);

您会发现您的代码可以使用,因为您的静态类型现在为PlaceImp,而PlaceImp包含您要作为公共元素查找的实例变量。

另一方面,如果您的静态类型为Place(如示例代码中所示),则它不包含名为“ name”的元素,因此您将无法访问它。