interfacename.class返回什么?

时间:2018-06-24 08:05:31

标签: java

    ClassPathXmlApplicationContext context = new  ClassPathXmlApplicationContext ("applicationContext.xml");
    //retrieve bean from the spring container
    Coach theCoach = context.getBean("myCoach",Coach.class);
    //call methods on the bean
    System.out.println(theCoach.getDailyWorkout());
    System.out.println(theCoach.getDailyFortune());
    System.out.println(theCoach.getEmailAddress());
    System.out.println(theCoach.getTeam());
    //close the context
    context.close();

在上面的代码中,Coach.class返回什么

教练是一个界面。

1 个答案:

答案 0 :(得分:0)

Coach.class返回一个Class对象的实例,该对象描述了Coach接口的结构。

假设我们有这个示例:

public interface Coach {
    int getName();
}

如果要执行以下行:

Class<Coach> coachClass = Coach.class;
System.out.println(coachClass.getName());
for(Method m:coachClass.getMethods()) {
    System.out.println(m.getName());
}

您将获得接口的全名和声明的方法的名称。

简而言之,Coach.class返回接口的元数据。如果您想了解有关此主题的更多信息,建议您阅读有关Java Reflection

在您的情况下,此行代码:

Coach theCoach = context.getBean("myCoach",Coach.class);

返回实现Coach接口的对象的实例。您必须传递Coach接口的元数据,以便Spring知道您要查找的数据类型。