Package io.jenetics

Interface Gene<A,G extends Gene<A,G>>

Type Parameters:
A - the Allele type of this gene.
All Superinterfaces:
Factory<G>, Self<G>, Verifiable
All Known Subinterfaces:
BoundedGene<A,G>, NumericGene<N,G>
All Known Implementing Classes:
AnyGene, BitGene, CharacterGene, DoubleGene, EnumGene, IntegerGene, LongGene

public interface Gene<A,G extends Gene<A,G>> extends Self<G>, Factory<G>, Verifiable
Genes are the atoms of the Jenetics library. They contain the actual information (alleles) of the encoded solution. All implementations of the interface are final, immutable and can be only created via static factory methods which have the name of. When extending the library with own Gene implementations, it is recommended to also implement it as value objects.
Since:
1.0
Version:
6.0
See Also:
Implementation Requirements:
Jenetics requires that the individuals (Genotype and Phenotype) are not changed after they have been created. Therefore, all implementations of the Gene interface must also be immutable.
  • Method Summary

    Modifier and Type
    Method
    Description
    Return the allele of this gene.
    Return a new, random gene with the same type and with the same constraints as this gene.
    newInstance(A value)
    Create a new gene from the given value and the gene context.

    Methods inherited from interface io.jenetics.util.Factory

    instances

    Methods inherited from interface io.jenetics.util.Self

    self

    Methods inherited from interface io.jenetics.util.Verifiable

    isValid
  • Method Details

    • allele

      Return the allele of this gene.
      Returns:
      the allele of this gene.
    • newInstance

      Return a new, random gene with the same type and with the same constraints as this gene. For all genes returned by this method holds gene.getClass() == gene.newInstance().getClass(). Implementations of this method have to use the RandomGenerator object which can be fetched from the RandomRegistry.
      Specified by:
      newInstance in interface Factory<A>
      Returns:
      a new instance of type T
    • newInstance

      G newInstance(A value)
      Create a new gene from the given value and the gene context.
      Parameters:
      value - the value of the new gene.
      Returns:
      a new gene with the given value.
      Since:
      2.0