I'm new to programming in Julia (I'm coming from Java) and some Julia concepts are still difficult to understand to me. What I intend is to replicate this Java code:
public class Archive<T extends Solution> {
public List<T> solutions;
public Archive() {
solutions = new ArrayList<>() ;
}
}
Then, I have defined the following Julia struct:
mutable struct Archive{T <: Solution}
solutions::Vector{T}
end
and I would like to define a constructor to inialize empty archives. In the case of an external constructor, I think that the code would look like this:
function Archive()
return Archive([])
end
Would it be possible to modify the constructor somehow to include the parametric type T?.
This is most likely the constructor you want:
Then you can write
Archive()orArchive(SomeType)ifSomeTypeis a subtype ofSolution.Note that your definition:
Is incorrect unless
SolutionisAny(and most likely it is not). You will get an error as[]isVector{Any}and you requireArchiveto store subtypes ofVector{<:Solution}.