fork download
  1. interface IBasic {
  2.  
  3. }
  4. interface IExtended extends IBasic {
  5.  
  6. }
  7.  
  8. class Basic implements IBasic {
  9.  
  10. }
  11.  
  12. class Extended implements IExtended {
  13.  
  14. }
  15.  
  16. class ExtendedTwice implements IBasic, IExtended {
  17.  
  18. }
  19.  
  20. public class Main {
  21.  
  22. private static void testSomeClassForIBasic(Class<?> testClass) {
  23. Class<?>[] interfaces = testClass.getInterfaces();
  24. for (Class<?> interface_ : interfaces) {
  25. if (IBasic.class.getName().equals(interface_.getName())) {
  26. System.out.println(testClass.getSimpleName() + " implements " + IBasic.class.getSimpleName());
  27. return;
  28. }
  29. }
  30. System.out.println(testClass.getSimpleName() + " does not implement " + IBasic.class.getSimpleName());
  31. }
  32.  
  33. private static void testSomeInstance(Object instance) {
  34. if (instance instanceof IBasic) {
  35. System.out.println(instance.getClass().getSimpleName() + " is instanceof IBasic");
  36. } else {
  37. System.out.println(instance.getClass().getSimpleName() + " is NOT instanceof IBasic");
  38. }
  39. }
  40.  
  41.  
  42. public static void main(String[] args) throws Exception {
  43. testSomeClassForIBasic(Basic.class);
  44. testSomeInstance(new Basic());
  45. System.out.println();
  46.  
  47. testSomeClassForIBasic(Extended.class);
  48. testSomeInstance(new Extended());
  49. System.out.println();
  50.  
  51. testSomeClassForIBasic(ExtendedTwice.class);
  52. testSomeInstance(new ExtendedTwice());
  53. }
  54. }
Success #stdin #stdout 0.08s 380160KB
stdin
Standard input is empty
stdout
Basic implements IBasic
Basic is instanceof IBasic

Extended does not implement IBasic
Extended is instanceof IBasic

ExtendedTwice implements IBasic
ExtendedTwice is instanceof IBasic