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?.
Tin the constructor? Also, note that the firststructdefinition does not work on Julia (at least on version 1.8). If you add details and make code more runnable, the answers could be more on point.struct Archive{T<:Solution} solutions::Vector{T} end. It's usually best to leave things immutable, and you could stillpush!and modify elements of thesolutionsvector. In addition, in Julia the compiler infers types for you, so, there is no need to over-specify types (a common instinct for people from statically typed languages).