【发布时间】:2016-07-26 02:49:30
【问题描述】:
好的,如果已经回答了这个问题,我们深表歉意。我试着寻找,但没有找到答案。
现在,我有一个链表实用程序类(单向链接),其中包含用于不同事物的各种通用实用程序方法。我要做的是创建一个能够将任何给定类的实例作为参数的方法,然后继续检查该类的实例是否存在于列表中,如果存在则返回 true,如果存在则返回 false没有。该列表本身包含几个不同类的实例。
该方法将与详细说明游戏板上空间内容的列表一起使用:如果该空间包含敌人,则显示敌人的图标并使该空间无法通行,如果它包含项目,则显示项目的图标等等。这里真正的问题是该方法应该能够处理任何和所有类,所以我不能使用类似的东西:
if(foo instanceof Enemy) { . . . }
这是我最初尝试做的事情: //此方法在 LinkedList 类中
public boolean exists(Object o)
{
int i = 0;
boolean output = false;
//koko() returns the size of the linked list
while(i < koko() && !output)
{
//alkio(i) returns an Object type reference to the entity in index i
if(alkio(i) instanceof o.getClass())
{
output = true;
}
}
return output;
}
但结果是这样的:https://www.dropbox.com/s/5mjr45uymxotzlq/Screenshot%202016-04-06%2001.16.59.png?dl=0
是的,这是作业(或者更确切地说,是大型作业的一部分),但老师不会在凌晨两点回答,而且我的 google-fu 太弱了。
拜托了
- 纳尔
【问题讨论】:
-
你为什么要输入一个对象而不是一个
Class? -
如何将类作为参数?这将是最简单的,但我并不完全意识到这是可能的......语法是什么?
-
你认为 o.getClass 会返回什么?它返回一个
Class。或者你可以写成文字MyClass.class。 -
那么你如何将它实际放入方法头中......? public boolean exists(//这里有什么?)
标签: java class linked-list variable-assignment instanceof