我在这个问题上遇到了一些麻烦。问题是:
编写一个完整的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.");
}
}
}
答案 0 :(得分:1)
嗯,这是完整的解决方案:
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
。
答案 1 :(得分:-2)
将这些界面存储在Collection
Set<Class> classes
中,然后对其进行迭代并与您的对象进行比较。