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)
ifSomeType
is a subtype ofSolution
.Note that your definition:
Is incorrect unless
Solution
isAny
(and most likely it is not). You will get an error as[]
isVector{Any}
and you requireArchive
to store subtypes ofVector{<:Solution}
.