我在这个问题上遇到了一些麻烦。问题是:
编写一个完整的Java程序,执行以下操作:
这就是我到目前为止想出的:
public interface I1
{
}public interface I2
{
}public interface I3 extends I1, I2
{
}public interface I4
{
}public class W extends X implements I4
{
}我对InstanceofTest方法有点困惑。我知道instanceof操作符会告诉您某个对象是否是某种类型的实例,就像您这样做时:
public class InstanceofTest
{
public static void main(String[] args)
{
W w = new W();
if (w instanceof X)
{
System.out.println("w is an instance of X.");
}
}
}我遇到的问题是使用instanceof查看w是否实现了每个接口。我不知道我会怎么做。任何帮助都将不胜感激!
编辑:那么,我应该这样做吗?
public class InstanceofTest
{
public static void main(String[] args)
{
W w = new W();
if (w instanceof X)
{
System.out.println("w is an instance of X.");
}
if (w instanceof I1)
{
System.out.println("w implements I1.");
}
if (w instanceof I2)
{
System.out.println("w implements I2.");
}
if (w instanceof I3)
{
System.out.println("w implements I3.");
}
if (w instanceof I4)
{
System.out.println("w implements I4.");
}
}
}发布于 2014-03-24 23:02:57
好吧,这是你的完整解决方案:
public interface I1 {}public interface I2 {}public interface I3 extends I1, I2 {}public interface I4 {}public class X implements I3 {}public class W extends X implements I4 {}public class InstanceofTest {
public static void main(String[] args){
W w = new W();
if (w instanceof I1)
System.out.println("W implements I1");
if (w instanceof I2)
System.out.println("W implements I2");
if (w instanceof I3)
System.out.println("W implements I3");
if (w instanceof I4)
System.out.println("W implements I4");
if (w instanceof X)
System.out.println("W extends X");
}
}结果是W实现了所有的接口并扩展了X。
发布于 2014-03-24 22:58:17
将这些接口像Collection一样存储在Set<Class> classes中,然后遍历它们并与对象进行比较。
https://stackoverflow.com/questions/22622222
复制相似问题