Package org.djunits.benchmark
Class BenchmarkAnonymousInstantiation
java.lang.Object
org.djunits.benchmark.BenchmarkAnonymousInstantiation
public final class BenchmarkAnonymousInstantiation extends Object
BenschmarkAnonymousInstantiation.java.
Copyright (c) 2019-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License
- Author:
- Alexander Verbraeck
-
Method Summary
Modifier and Type Method Description static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>>
SinstantiateAnonymousCached(double value, org.djunits.unit.Unit<?> unit)
Instantiate the DoubleScalar based on its unit.static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>>
SinstantiateAnonymousCascade(double value, org.djunits.unit.Unit<?> unit)
Instantiate the DoubleScalar based on its unit.static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>>
SinstantiateAnonymousMethodHandle(double value, org.djunits.unit.Unit<?> unit)
Instantiate the DoubleScalar based on its unit.static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>>
SinstantiateAnonymousNonCached(double value, org.djunits.unit.Unit<?> unit)
Instantiate the DoubleScalar based on its unit.static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>>
SinstantiateCached(double value, U unit)
Instantiate the DoubleScalar based on its unit.static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>>
SinstantiateCascade(double value, U unit)
Instantiate the DoubleScalar based on its unit.static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>>
SinstantiateMethodHandle(double value, U unit)
Instantiate the DoubleScalar based on its unit.static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>>
SinstantiateNonCached(double value, U unit)
Instantiate the DoubleScalar based on its unit.static void
main(String[] args)
Benchmark for anonymous scalar instantiation.
-
Method Details
-
instantiateCached
public static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>> S instantiateCached(double value, U unit)Instantiate the DoubleScalar based on its unit. Rigid check on types for the compiler.- Type Parameters:
U
- the unitS
- the return type- Parameters:
value
- double; the valueunit
- U; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateAnonymousCached
public static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>> S instantiateAnonymousCached(double value, org.djunits.unit.Unit<?> unit)Instantiate the DoubleScalar based on its unit. Loose check for types on the compiler. This allows the unit to be specified as a Unit<?> type.
Note that it is possible to make mistakes with anonymous units.- Type Parameters:
S
- the return type- Parameters:
value
- double; the valueunit
- Unit<?>; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateCascade
public static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>> S instantiateCascade(double value, U unit)Instantiate the DoubleScalar based on its unit. Rigid check on types for the compiler.- Type Parameters:
U
- the unitS
- the return type- Parameters:
value
- double; the valueunit
- U; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateAnonymousCascade
public static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>> S instantiateAnonymousCascade(double value, org.djunits.unit.Unit<?> unit)Instantiate the DoubleScalar based on its unit. Loose check for types on the compiler. This allows the unit to be specified as a Unit<?> type.
Note that it is possible to make mistakes with anonymous units.- Type Parameters:
S
- the return type- Parameters:
value
- double; the valueunit
- Unit<?>; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateNonCached
public static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>> S instantiateNonCached(double value, U unit)Instantiate the DoubleScalar based on its unit. Rigid check on types for the compiler.- Type Parameters:
U
- the unitS
- the return type- Parameters:
value
- double; the valueunit
- U; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateAnonymousNonCached
public static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>> S instantiateAnonymousNonCached(double value, org.djunits.unit.Unit<?> unit)Instantiate the DoubleScalar based on its unit. Loose check for types on the compiler. This allows the unit to be specified as a Unit<?> type.
Note that it is possible to make mistakes with anonymous units.- Type Parameters:
S
- the return type- Parameters:
value
- double; the valueunit
- Unit<?>; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateMethodHandle
public static <U extends org.djunits.unit.Unit<U>, S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<U, S>> S instantiateMethodHandle(double value, U unit)Instantiate the DoubleScalar based on its unit. Rigid check on types for the compiler.- Type Parameters:
U
- the unitS
- the return type- Parameters:
value
- double; the valueunit
- U; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
instantiateAnonymousMethodHandle
public static <S extends org.djunits.value.vdouble.scalar.base.AbstractDoubleScalar<?, S>> S instantiateAnonymousMethodHandle(double value, org.djunits.unit.Unit<?> unit)Instantiate the DoubleScalar based on its unit. Loose check for types on the compiler. This allows the unit to be specified as a Unit<?> type.
Note that it is possible to make mistakes with anonymous units.- Type Parameters:
S
- the return type- Parameters:
value
- double; the valueunit
- Unit<?>; the unit in which the value is expressed- Returns:
- an instantiated DoubleScalar with the value expressed in the unit
-
main
Benchmark for anonymous scalar instantiation.- Parameters:
args
- empty- Throws:
Throwable
- on error
-