实现 returns 一个 Class 的方法
Implementing a method that returns a Class
有一个接口,方法是returns一个Class,像这样。
public interface MyInterface {
public Class<? extends Object> returnsSomething ();
}
我必须创建一个 class 来实现接口,就像这样。
public class MyClass implements MyInterface {
public Class<? extends Object> returnsSomething () {
return Object; // This is currently an error.
}
}
MyClass
中 returnsSomething
的实现中的 return
行不正确。 IDE 提示“找不到符号对象”。
我需要在 returnSomething
的正文中应用什么更正才能成功编译?
Object
只是 class 的名称。
Object.class
是 Class<Object>
class 的实例,表示 Object
class。参见 Class。
所以你需要:
return Object.class;
您的 return 类型在您的方法中不正确。你需要明白这个 '.class' 在 Java 中用于代码反射。通常,您可以为 class 收集元数据,例如完整的 class 名称、常量列表、public 字段列表等...所以在您的示例中,您基本上是在说为使用的通配符returned 的Class 类型将是Object 或Subclass of object to be returned at Runtime。请注意,您希望 Java 确定在运行时 returned 的对象。
有一个接口,方法是returns一个Class,像这样。
public interface MyInterface {
public Class<? extends Object> returnsSomething ();
}
我必须创建一个 class 来实现接口,就像这样。
public class MyClass implements MyInterface {
public Class<? extends Object> returnsSomething () {
return Object; // This is currently an error.
}
}
MyClass
中 returnsSomething
的实现中的 return
行不正确。 IDE 提示“找不到符号对象”。
我需要在 returnSomething
的正文中应用什么更正才能成功编译?
Object
只是 class 的名称。
Object.class
是 Class<Object>
class 的实例,表示 Object
class。参见 Class。
所以你需要:
return Object.class;
您的 return 类型在您的方法中不正确。你需要明白这个 '.class' 在 Java 中用于代码反射。通常,您可以为 class 收集元数据,例如完整的 class 名称、常量列表、public 字段列表等...所以在您的示例中,您基本上是在说为使用的通配符returned 的Class 类型将是Object 或Subclass of object to be returned at Runtime。请注意,您希望 Java 确定在运行时 returned 的对象。