我真的不明白class关键字在某些情况下是如何工作的.
例如,该get(ClientResponse.class)方法采用 ClientResponse.class.当它获得它时它如何使用它,并且仅仅传递它的实例有什么优势?
smc*_*mcg 10
SomeClass.class
Run Code Online (Sandbox Code Playgroud)
返回Java Class对象.类是通用的,因此SomeClass.class的实际类型将是Class<SomeType>.
这个对象有很多用途,您可以在这里阅读Javadoc:http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html
In ClientResponse.class,class不是关键字,也不是类中的静态字段ClientResponse.
关键字是我们用来在Java中定义类的关键字.例如
public class MyClass { } /* class used here is one of the keywords in Java */
Run Code Online (Sandbox Code Playgroud)
该class中ClientResponse.class是一个捷径,以实例Class<T>表示类ClientResponse.
还有另一种方法可以访问您需要实例的实例ClientResponse.例如
ClientResponse obj = new ClientResponse();
Class clazz = obj.getClass();
Run Code Online (Sandbox Code Playgroud)
只是传递一个实例的优势是什么?
在上面的例子中,您可以看到在objnull(NPE)的情况下会发生什么.然后,该方法无法获取对Class实例的引用ClientResponse.