There is a computer represented as a Spring component. It comprises several other devices like CPU, RAM and disk. All these devices are Spring components as well.
Select the case in which the fields of the Computer component will be null after starting the application. You can run an application containing these components locally and check the result.
1)
Java
@Component
class Computer {
private final CentralProcessUnit cpu;
private final RamMemory ram;
private final Disk disk;
@Autowired
Computer(CentralProcessUnit cpu, RamMemory ram, Disk disk) {
this.cpu = cpu;
this.ram = ram;
this.disk = disk;
}
// methods for calculations and storing data
}
Kotlin
@Component
class Computer @Autowired constructor(
private val cpu: CentralProcessUnit,
private val ram: RamMemory,
private val disk: Disk
) {
// methods for calculations and storing data
}
2)
Java
@Component
class Computer {
private final CentralProcessUnit cpu;
private final RamMemory ram;
private final Disk disk;
Computer(CentralProcessUnit cpu, RamMemory ram, Disk disk) {
this.cpu = cpu;
this.ram = ram;
this.disk = disk;
}
// methods for calculations and storing data
}
Kotlin
@Component
class Computer constructor(
private val cpu: CentralProcessUnit,
private val ram: RamMemory,
private val disk: Disk
) {
// methods for calculations and storing data
}
3)
Java
@Component
class Computer {
private final CentralProcessUnit cpu;
private final RamMemory ram;
private final Disk disk;
Computer(@Autowired CentralProcessUnit cpu,
@Autowired RamMemory ram,
@Autowired Disk disk) {
this.cpu = cpu;
this.ram = ram;
this.disk = disk;
}
public Disk getDisk() {
return disk;
}
// methods for calculations and storing data
}
Kotlin
@Component
class Computer constructor(
@Autowired private val cpu: CentralProcessUnit,
@Autowired private val ram: RamMemory,
@Autowired private val disk: Disk
) {
// methods for calculations and storing data
}
4)
Java
@Component
class Computer {
private CentralProcessUnit cpu;
private RamMemory ram;
private Disk disk;
// methods for calculations and storing data
}
Kotlin
@Component
class Computer {
private lateinit var cpu: CentralProcessUnit
private lateinit var ram: RamMemory
private lateinit var disk: Disk
// methods for calculations and storing data
}
5)
Java
@Component
class Computer {
@Autowired
private CentralProcessUnit cpu;
@Autowired
private RamMemory ram;
@Autowired
private Disk disk;
// methods for calculations and storing data
}
Kotlin
@Component
class Computer {
@Autowired
private lateinit var cpu: CentralProcessUnit
@Autowired
private lateinit var ram: RamMemory
@Autowired
private lateinit var disk: Disk
// methods for calculations and storing data
}