gpt4 book ai didi

java - java中SomeObject.class的含义是什么?

转载 作者:行者123 更新时间:2023-12-01 08:07:33 27 4
gpt4 key购买 nike

例如,在双重检查锁定单例模式中,

public class Singleton {
private volatile static Singleton uniqueInstance;
private Singleton() {}
public static Singleton getInstance() {
if (uniqueInstance == null) {
synchronized (Singleton.class) {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
}

“Singleton.class”是什么意思?它是一个对象吗?

现在我知道它是类对象,那么我们可以在这里使用其他对象来同步吗?比如“这个”?

最佳答案

它代表该类的Class对象。一旦获得了Class对象,您就可以做很多事情,比如获取类的字段、类的方法、类的包等等。

最常见的是,您将使用它以流的形式获取资源。也就是说,当您想要从 jar 文件中检索嵌入资源时。欲了解更多详细信息,have a look at the documentation

直接运行以下代码:http://ideone.com/h1czR5

SSCCE

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.lang.reflect.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Class string = String.class;

System.out.println("Package: " + string.getPackage());
System.out.println("Fields: " + java.util.Arrays.toString(string.getFields()));
Method[] methods = string.getMethods();

for(int i = 0; i < 10; i++){
System.out.println(methods[i]);
}

}
}

输出:

Package: package java.lang, Java Platform API Specification, version 1.7
Fields: [public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER]
public boolean java.lang.String.equals(java.lang.Object)
public java.lang.String java.lang.String.toString()
public int java.lang.String.hashCode()
public int java.lang.String.compareTo(java.lang.Object)
public int java.lang.String.compareTo(java.lang.String)
public int java.lang.String.indexOf(java.lang.String,int)
public int java.lang.String.indexOf(int)
public int java.lang.String.indexOf(int,int)
public int java.lang.String.indexOf(java.lang.String)
public static java.lang.String java.lang.String.valueOf(float)

关于java - java中SomeObject.class的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20259664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com