我正在完成作业,并且为我提供了一个名为 Place 的界面。 它具有几种已定义的方法,没有变量。 我创建了一个实现 Place 的类,其中包含一个字符串变量 name 和 Place 接口中的所有方法。
public class PlaceImpl implements Place
{
public String name;
...
}
然后我创建一个对象
Place p = new PlaceImpl(placeName);
但是,当我尝试访问p.name时,出现错误“找不到符号”。 我可以通过这种方式访问实例变量吗?还是只需要找到其他地方来存储变量? 谢谢
更新:我无法更改Place接口,并且必须使用Place类型的变量与我提供的其余代码集成。
答案 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”的元素,因此您将无法访问它。