gpt4 book ai didi

java - 将参数传递给 Java 中的静态构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:52 24 4
gpt4 key购买 nike

我试图用一个参数初始化一个静态类,然后在该类中运行一些更多的静态代码。
我知道 static block ,但它似乎不能接受任何参数。
有没有办法将参数传递给静态构造函数?
如果不是,使用参数初始化静态类的推荐技术是什么?

编辑:根据我的理解,静态类是一个无法实例化的类(在 C# 中,它们被称为静态类,如果 Java 对它们有不同的术语,很抱歉没有意识到这一点)——它是通过类名而不是类名访问的对象名称。

我想要实现的(非常简单)是一个类,它接收一个字典作为字符串,解析它,并有像 GetRandomEntry 这样的方法来操作它。

这是我的代码的详细片段:

public class QuestionsRepository {  
private static Map<String,String[]> easyDefinitions = new HashMap<String,String[]>();

//...

static 
{
// need to receive and parse dictionary here
}
//...

获取代码片段的相关部分绝非易事,希望我的选择是明智的(:
另一个可能相关的细节——我通常是一名 C# 程序员。最近刚开始学习 Java。

谢谢。

最佳答案

我认为您需要根据一些输入来初始化类的静态字段。您可以通过以下方式调用另一个类的静态方法来完成:

class ClassToInitialize {
static {
staticField = ParamPassClass.getParameter();
}

private static String staticField;

ClassToInitialize() {
System.out.println("This is the parameter: " + staticField);
}

}

class ParamPassClass {
private static String parameter;
static String getParameter() {
return parameter;
}

static void setParameter(String parameter) {
ParamPassClass.parameter = parameter;
}
}

class Main {
public static void main(String args[]) {
ParamPassClass.setParameter("Test param");
new ClassToInitialize();
}
}

关于java - 将参数传递给 Java 中的静态构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052467/

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