所以我刚刚用Java开始了我的第一个大项目,我正在学习一些教程但是有一些我根本不理解的代码。
package com.Legolando.Runa;
import net.minecraftforge.fml.common.Mod;
@Mod(modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION)
public class Runa {
@Mod.Instance
public static Runa instance = new Runa();
// I dont get why instance of my class has to be static
}
如你所见,我在这个类中创建了这个类的实例(对我来说已经是cosmos),这个实例是静态的。有人可以解释什么是静态实例吗?它与静态变量或方法相同吗?
答案 0 :(得分:0)
这段代码让我想起了java中的Singleton类。
public class Runa {
private static Runa singleton = new Runa( );
/* A private Constructor prevents any other
* class from instantiating.
*/
private Runa() { }
/* Static 'instance' method */
public static Runa getInstance( ) {
return singleton;
}
/* Other methods protected by singleton-ness */
protected static void demoMethod( ) {
System.out.println("demoMethod for singleton");
}
}
仅供参考,Singleton确保在应用程序内只为Runa类创建一个对象。尝试谷歌一点,以便更好地理解java中的Singleton usage
链接: https://www.tutorialspoint.com/java/java_using_singleton.htm
最好的运气
答案 1 :(得分:-1)
这很可能是指软件开发中的一种设计模式,称为单例。
即。该类被设计为仅具有单个实例,可通过静态方式访问。然而,这并不是单身人士的一个很好的例子,因为每个字段都应仅通过方法进行访问。此外,可能需要私有构造函数来阻止其他类实例化单例。