我想创建一个类的实例,该类的构造函数需要货币,但是我将货币传递到我创建它们的类的构造函数中。
public class Owner_Class {
Controller items = new Controller();
private Item[][] list = items.getItemList();
private String currency;
private coinCollector dispenser = new coinCollector(currency);
public Owner_Class(String currency) {
this.currency = currency;
}
每当我运行这个时,货币都是空的。到底是有什么办法,还是我需要改变它的工作方式
只是将初始化转移到构造函数。Java首先运行所有“初始化表达式”,然后运行构造函数。因此,在您当前的代码片段中,currency
以null
开头,然后执行new coinCollector(currency)
(因此,传递null
),然后您的构造函数运行并设置currency
——太晚了。
因此:
public class Owner_Class {
Controller items = new Controller();
private Item[][] list = items.getItemList();
private Scanner input = new Scanner(System.in);
private String currency;
private coinCollector dispenser;
public Owner_Class(String currency) {
this.currency = currency;
this.dispenser = new coinCollector(currency);
}
}
如何在百里叶中使用另一个变量来声明一个变量?这就是我想做的: 但是编译器不喜欢 : EL1041E:(pos 1):解析有效表达式后,表达式中还有更多数据:“lcurly({)” (组织.thymeleaf.exceptions.template处理异常: 异常计算 SpringEL 表达式: “${ccc} == null ? '' : ${ccc}” (自定义:24))
问题内容: 我有两个 newAccessLevels.java ,它有两个按钮“ Level 1”,“ Level 2”和 newAccessPanel.java。 我需要获取用户选择“ 1或2”的级别,以便可以在标题中显示它。 accessPanel.java, 例如访问级别1,访问级别2。如何完成此操作。下面是示例代码,因此,如果单击级别1,则将打开标题为* ACCESS LEVEL 1 的n
问题内容: 这两种方法有什么优势吗? 范例1: 范例2: 问题答案: 没有区别-实例变量初始化实际上是由编译器放入构造函数中的。 第一种变体更具可读性。 你不能使用第一个变体进行异常处理。 另外还有初始化块,编译器也将其放在构造函数中: 但是,字段声明不是任何方法的一部分,因此它们不能像语句那样执行。相反,Java编译器会自动生成实例字段初始化代码,并将其放入该类的一个或多个构造函数中。初始化代码
问题内容: 我有以下内容: 然后在我的Android活动中,我将这样称呼: 然后我打电话给。但是,我希望不要对其进行硬编码,因此可以将其传递。否则,对于要打印的每个String,我都必须具有这些声明之一。 (这实际上是一个Android问题,但将其简化为基本Java,因此更易于回答) 谢谢 问题答案: final String hello = whereverItsComingFrom; Runn
问题内容: 是否可以从Java中的另一个类访问一个类中变量的实例。 假设您在A类中具有以下条件: 我想对此类中的队列进行更改,然后可以使用它从另一个类中对其进行访问。 我如何从另一个类访问缓冲区的实例?可能吗? 问题答案: 添加吸气剂: 然后,如果您有Whatever的实例:
我知道这个话题听起来像是重复的,但我并不是想在这里调试这个问题,而是想绕过它。 我的程序应该做的是:对于文件夹中的每个文件,创建一个新按钮。如果您单击此按钮,请输入您刚输入的文件夹的名称。 现在我遇到的问题是,“fileName”变量需要放在final中,因为Java提供的是对象的指针,而不是值本身。但如果我这样做,则只会为任何按钮发送最后选择的文件名。