Java 类java.util.function.LongUnaryOperator 实例源码
项目:OpenJSharp
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:OpenJSharp
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
final PrimitiveIterator.OfLong iterator = new PrimitiveIterator.OfLong() {
long t = seed;
@Override
public boolean hasNext() {
return true;
}
@Override
public long nextLong() {
long v = t;
t = f.applyAsLong(t);
return v;
}
};
return StreamSupport.longStream(Spliterators.spliteratorUnknownSize(
iterator,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
}
项目:jdk8u-jdk
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:jdk8u-jdk
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
final PrimitiveIterator.OfLong iterator = new PrimitiveIterator.OfLong() {
long t = seed;
@Override
public boolean hasNext() {
return true;
}
@Override
public long nextLong() {
long v = t;
t = f.applyAsLong(t);
return v;
}
};
return StreamSupport.longStream(Spliterators.spliteratorUnknownSize(
iterator,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
}
项目:openjdk-jdk10
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:openjdk-jdk10
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* <p>The action of applying {@code f} for one element
* <a href="../concurrent/package-summary.html#MemoryVisibility"><i>happens-before</i></a>
* the action of applying {@code f} for subsequent elements. For any given
* element the action may be performed in whatever thread the library
* chooses.
*
* @param seed the initial element
* @param f a function to be applied to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
Spliterator.OfLong spliterator = new Spliterators.AbstractLongSpliterator(Long.MAX_VALUE,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL) {
long prev;
boolean started;
@Override
public boolean tryAdvance(LongConsumer action) {
Objects.requireNonNull(action);
long t;
if (started)
t = f.applyAsLong(prev);
else {
t = seed;
started = true;
}
action.accept(prev = t);
return true;
}
};
return StreamSupport.longStream(spliterator, false);
}
项目:openjdk9
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:openjdk9
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
Spliterator.OfLong spliterator = new Spliterators.AbstractLongSpliterator(Long.MAX_VALUE,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL) {
long prev;
boolean started;
@Override
public boolean tryAdvance(LongConsumer action) {
Objects.requireNonNull(action);
long t;
if (started)
t = f.applyAsLong(prev);
else {
t = seed;
started = true;
}
action.accept(prev = t);
return true;
}
};
return StreamSupport.longStream(spliterator, false);
}
项目:Java8CN
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:Java8CN
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
final PrimitiveIterator.OfLong iterator = new PrimitiveIterator.OfLong() {
long t = seed;
@Override
public boolean hasNext() {
return true;
}
@Override
public long nextLong() {
long v = t;
t = f.applyAsLong(t);
return v;
}
};
return StreamSupport.longStream(Spliterators.spliteratorUnknownSize(
iterator,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
}
项目:baratine
文件:TimerServiceRamp.java
/**
* Implements {@link Timers#schedule(Runnable, TimerScheduler)}
*/
@Override
public void schedule(@Pin Consumer<? super Cancel> task,
LongUnaryOperator scheduler,
Result<? super Cancel> result)
{
Objects.requireNonNull(task);
Objects.requireNonNull(scheduler);
// cancel(task);
long now = CurrentTime.currentTime();
long nextTime = scheduler.applyAsLong(now);
TimerListener listener = new TimerListener(task, scheduler);
result.ok(listener);
if (now <= nextTime) {
listener.queueAt(nextTime);
}
/*
return listener;
*/
}
项目:metagen-java
文件:IntegerDistributionsConcurrencyTest.java
@Test
public void testBinomialCurvePoints() {
LongUnaryOperator idc = IntegerDistributions.forSpec("mapto_binomial(8,0.5)");
long half = Long.MAX_VALUE / 2;
long expected = idc.applyAsLong(half);
assertThat(expected).isEqualTo(4);
expected = idc.applyAsLong(1);
assertThat(expected).isEqualTo(0);
// threshold test against CDF
expected = idc.applyAsLong((long) (0.03515d * (double) Long.MAX_VALUE));
assertThat(expected).isEqualTo(1);
expected = idc.applyAsLong((long) (0.03600d * (double) Long.MAX_VALUE));
assertThat(expected).isEqualTo(2);
}
项目:metagen-java
文件:IntegerDistributionsConcurrencyTest.java
@Override
public long[] call() throws Exception {
long[] output = new long[size];
LongUnaryOperator mapper = IntegerDistributions.forSpec(mapperSpec);
// System.out.println("resolved:" + mapper);
// System.out.flush();
synchronized (signal) {
signal.wait(10000);
}
for (int i = 0; i < output.length; i++) {
output[i] = mapper.applyAsLong(i);
// if ((i % 100) == 0) {
// System.out.println("wrote t:" + slot + ", iter:" + i + ", val:" + output[i]);
// }
}
return output;
}
项目:jdk8u_jdk
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:jdk8u_jdk
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
final PrimitiveIterator.OfLong iterator = new PrimitiveIterator.OfLong() {
long t = seed;
@Override
public boolean hasNext() {
return true;
}
@Override
public long nextLong() {
long v = t;
t = f.applyAsLong(t);
return v;
}
};
return StreamSupport.longStream(Spliterators.spliteratorUnknownSize(
iterator,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
}
项目:lookaside_java-1.8.0-openjdk
文件:LongPipeline.java
@Override
public final LongStream map(LongUnaryOperator mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<Long>(this, StreamShape.LONG_VALUE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<Long> opWrapSink(int flags, Sink<Long> sink) {
return new Sink.ChainedLong<Long>(sink) {
@Override
public void accept(long t) {
downstream.accept(mapper.applyAsLong(t));
}
};
}
};
}
项目:lookaside_java-1.8.0-openjdk
文件:LongStream.java
/**
* Returns an infinite sequential ordered {@code LongStream} produced by iterative
* application of a function {@code f} to an initial element {@code seed},
* producing a {@code Stream} consisting of {@code seed}, {@code f(seed)},
* {@code f(f(seed))}, etc.
*
* <p>The first element (position {@code 0}) in the {@code LongStream} will
* be the provided {@code seed}. For {@code n > 0}, the element at position
* {@code n}, will be the result of applying the function {@code f} to the
* element at position {@code n - 1}.
*
* @param seed the initial element
* @param f a function to be applied to to the previous element to produce
* a new element
* @return a new sequential {@code LongStream}
*/
public static LongStream iterate(final long seed, final LongUnaryOperator f) {
Objects.requireNonNull(f);
final PrimitiveIterator.OfLong iterator = new PrimitiveIterator.OfLong() {
long t = seed;
@Override
public boolean hasNext() {
return true;
}
@Override
public long nextLong() {
long v = t;
t = f.applyAsLong(t);
return v;
}
};
return StreamSupport.longStream(Spliterators.spliteratorUnknownSize(
iterator,
Spliterator.ORDERED | Spliterator.IMMUTABLE | Spliterator.NONNULL), false);
}
项目:memoization.java
文件:ConcurrentMapBasedLongUnaryOperatorMemoizerTest.java
/**
*
*/
@Test
@SuppressWarnings(CompilerWarnings.UNUSED)
public void shouldRequireNonNullCache() {
// given
final ConcurrentMap<Long, Long> cache = null;
final LongUnaryOperator operator = input -> input;
final LongFunction<Long> keyFunction = Long::valueOf;
// when
thrown.expect(NullPointerException.class);
thrown.expectMessage("Provide an empty map instead of NULL.");
// then
new ConcurrentMapBasedLongUnaryOperatorMemoizer<>(cache, keyFunction, operator);
}
项目:memoization.java
文件:ConcurrentMapBasedLongUnaryOperatorMemoizerTest.java
/**
*
*/
@Test
@SuppressWarnings(CompilerWarnings.UNUSED)
public void shouldRequireNonNullOperator() {
// given
final ConcurrentMap<Long, Long> cache = new ConcurrentHashMap<>();
final LongUnaryOperator operator = null;
final LongFunction<Long> keyFunction = Long::valueOf;
// when
thrown.expect(NullPointerException.class);
thrown.expectMessage(
"Cannot memoize a NULL LongUnaryOperator - provide an actual LongUnaryOperator to fix this.");
// then
new ConcurrentMapBasedLongUnaryOperatorMemoizer<>(cache, keyFunction, operator);
}
项目:memoization.java
文件:ConcurrentMapBasedLongUnaryOperatorMemoizerTest.java
/**
*
*/
@Test
public void shouldUseSetCacheKeyAndValue() {
// given
final ConcurrentMap<Long, Long> cache = new ConcurrentHashMap<>();
final LongUnaryOperator operator = input -> input;
final LongFunction<Long> keyFunction = Long::valueOf;
// when
final ConcurrentMapBasedLongUnaryOperatorMemoizer<Long> memoizer = new ConcurrentMapBasedLongUnaryOperatorMemoizer<>(
cache, keyFunction, operator);
// then
memoizer.applyAsLong(123L);
Assert.assertFalse("Cache is still empty after memoization", memoizer.viewCacheForTest().isEmpty());
Assert.assertEquals("Memoization key does not match expectations", 123L,
memoizer.viewCacheForTest().keySet().iterator().next().longValue());
Assert.assertEquals("Memoization value does not match expectations", 123L,
memoizer.viewCacheForTest().values().iterator().next().longValue());
}
项目:memoization.java
文件:ConcurrentMapBasedLongUnaryOperatorMemoizerTest.java
/**
*
*/
@Test
public void shouldUseCallWrappedOperator() {
// given
final ConcurrentMap<Long, Long> cache = new ConcurrentHashMap<>();
final LongUnaryOperator operator = Mockito.mock(LongUnaryOperator.class);
final LongFunction<Long> keyFunction = Long::valueOf;
// when
final ConcurrentMapBasedLongUnaryOperatorMemoizer<Long> memoizer = new ConcurrentMapBasedLongUnaryOperatorMemoizer<>(
cache, keyFunction, operator);
// then
memoizer.applyAsLong(123L);
Mockito.verify(operator).applyAsLong(123L);
}
项目:openjdk-systemtest
文件:TestLambdaJavaInterfaces.java
@Test public void testLongUnaryOp() {
LongUnaryOperator longOperand = (l) -> {
return l + 1;
};
long expected = 33L;
assertEquals(expected, longOperand.applyAsLong(32L));
}
项目:guava-mock
文件:AtomicLongMap.java
/**
* Updates the value currently associated with {@code key} with the specified function,
* and returns the old value. If there is not currently a value associated with {@code key},
* the function is applied to {@code 0L}.
*
* @since 21.0
*/
@CanIgnoreReturnValue
public long getAndUpdate(K key, LongUnaryOperator updaterFunction) {
checkNotNull(updaterFunction);
AtomicLong holder = new AtomicLong();
map.compute(
key,
(k, value) -> {
long oldValue = (value == null) ? 0L : value.longValue();
holder.set(oldValue);
return updaterFunction.applyAsLong(oldValue);
});
return holder.get();
}
项目:Telejam
文件:BotThread.java
/**
* Constructs a bot thread.
*
* @param bot the bot used by the reader
* @param backOff back off to be used when long polling fails
*/
public BotThread(Bot bot, LongUnaryOperator backOff) {
super();
this.bot = bot;
updateReader = new UpdateReader(bot, backOff);
updateHandlers = new ArrayList<>();
errorHandlers = new ArrayList<>();
executor = Runnable::run;
}
项目:Telejam
文件:UpdateReader.java
/**
* Constructs an UpdateReader.
*
* @param connection the connection that receive updates
* @param backOff back off to be used when long polling fails
*/
public UpdateReader(TelegramConnection connection, LongUnaryOperator backOff) {
this.connection = Objects.requireNonNull(connection);
this.backOff = Objects.requireNonNull(backOff);
updates = new ConcurrentLinkedQueue<>();
lastUpdateId = -1;
allowedUpdates = new String[0];
}
项目:math
文件:MuVector2l.java
@NonNull
@Override
public MuVector2l map(@NonNull final LongUnaryOperator operator) {
this.x = operator.applyAsLong(this.x);
this.y = operator.applyAsLong(this.y);
return this;
}
项目:math
文件:MuVector4l.java
@NonNull
@Override
public MuVector4l map(@NonNull final LongUnaryOperator operator) {
this.x = operator.applyAsLong(this.x);
this.y = operator.applyAsLong(this.y);
this.z = operator.applyAsLong(this.z);
this.w = operator.applyAsLong(this.w);
return this;
}
项目:math
文件:MuVector3l.java
@NonNull
@Override
public MuVector3l map(@NonNull final LongUnaryOperator operator) {
this.x = operator.applyAsLong(this.x);
this.y = operator.applyAsLong(this.y);
this.z = operator.applyAsLong(this.z);
return this;
}
项目:atomic
文件:AtomicLong.java
public final long getAndUpdate(LongUnaryOperator updateFunction) {
long prev, next;
do {
prev = value;
next = updateFunction.applyAsLong(prev);
} while (!compareAndSet(prev, next));
return prev;
}
项目:atomic
文件:AtomicLong.java
public final long updateAndGet(LongUnaryOperator updateFunction) {
long prev, next;
do {
prev = value;
next = updateFunction.applyAsLong(prev);
} while (!compareAndSet(prev, next));
return next;
}
项目:atomic
文件:AtomicLongArray.java
public final long getAndUpdate(int i, LongUnaryOperator updateFunction) {
long offset = checkedByteOffset(i);
long prev, next;
do {
prev = getRaw(offset);
next = updateFunction.applyAsLong(prev);
} while (!compareAndSetRaw(offset, prev, next));
return prev;
}
项目:atomic
文件:AtomicLongArray.java
public final long updateAndGet(int i, LongUnaryOperator updateFunction) {
long offset = checkedByteOffset(i);
long prev, next;
do {
prev = getRaw(offset);
next = updateFunction.applyAsLong(prev);
} while (!compareAndSetRaw(offset, prev, next));
return next;
}
项目:bluetooth-manager
文件:ConcurrentBitMap.java
private void set(LongUnaryOperator operator, Runnable changed, Runnable notChanged) {
synchronized (bits) {
long oldState = bits.getAndUpdate(operator);
if (bits.get() > 0 && oldState == 0 || bits.get() == 0 && oldState > 0) {
if (changed != null) {
changed.run();
}
} else if (notChanged != null) {
notChanged.run();
}
}
}
项目:googles-monorepo-demo
文件:AtomicLongMap.java
/**
* Updates the value currently associated with {@code key} with the specified function,
* and returns the old value. If there is not currently a value associated with {@code key},
* the function is applied to {@code 0L}.
*
* @since 21.0
*/
@CanIgnoreReturnValue
public long getAndUpdate(K key, LongUnaryOperator updaterFunction) {
checkNotNull(updaterFunction);
AtomicLong holder = new AtomicLong();
map.compute(
key,
(k, value) -> {
long oldValue = (value == null) ? 0L : value.longValue();
holder.set(oldValue);
return updaterFunction.applyAsLong(oldValue);
});
return holder.get();
}
项目:baratine
文件:TimerServiceRamp.java
TimerListener(Consumer<? super Cancel> task,
LongUnaryOperator nextTime)
{
_task = task;
_nextTime = nextTime;
// _info = new TaskInfo(_task, CurrentTime.getCurrentTime());
_alarm = new Alarm(this);
}
项目:baratine
文件:TimerServiceRamp.java
@Override
public void handleAlarm(Alarm alarm)
{
if (isClosed()) {
return;
}
try {
_task.accept(this);
} catch (Throwable e) {
log.log(Level.FINER, e.toString(), e);
// _info.lastException(e);
throw e;
} finally {
// _info.lastCompletedTime(CurrentTime.getCurrentTime());
LongUnaryOperator nextTimeOp = _nextTime;
boolean isScheduled = false;
if (nextTimeOp != null && _alarm != null) {
long now = CurrentTime.currentTime();
long nextTime = nextTimeOp.applyAsLong(now);
if (now < nextTime) {
_alarm.queueAt(nextTime);
isScheduled = true;
// _info.nextRunTime(nextTime);
}
}
if (! isScheduled) {
close();
}
}
}
项目:metrics-jvm-extras
文件:ProcfsSmaps.java
private void inc(KEY key, long increment) {
Objects.requireNonNull(key);
values.get(key).getAndUpdate(new LongUnaryOperator() {
@Override
public long applyAsLong(long currentValue) {
return currentValue + increment + (currentValue == -1 ? 1 : 0);
}
});
}
项目:metagen-java
文件:FunctionAssembler.java
public FunctionAssembler andThen(Object functionObject) {
if (functionObject instanceof LongUnaryOperator) {
return andThen((LongUnaryOperator) functionObject);
}
if (functionObject instanceof LongFunction) {
return andThen((LongFunction) functionObject);
}
if (functionObject instanceof Function) {
return andThen((Function) functionObject);
}
throw new RuntimeException("Function object was not a type recognized by " + FunctionAssembler.class.getSimpleName()
+ ", object:" + functionObject);
}
项目:rheem
文件:SampleOperator.java
/**
* Creates a new instance given user-defined sample size and seed methods.
*/
public SampleOperator(IntUnaryOperator sampleSizeFunction, DataSetType<Type> type, Methods sampleMethod, LongUnaryOperator seedFunction) {
super(type, type, true);
this.sampleSizeFunction = sampleSizeFunction;
this.sampleMethod = sampleMethod;
this.seedFunction = seedFunction;
}
项目:memoization.java
文件:CaffeineMemoizeCustomKeyTest.java
/**
*
*/
@Test
public void shouldMemoizeLongUnaryOperatorWithKeyFunction() {
// given
final LongUnaryOperator function = a -> 123L;
final LongFunction<String> keyFunction = a -> "key";
// when
final LongUnaryOperator memoize = CaffeineMemoize.longUnaryOperator(function, keyFunction);
// then
Assert.assertNotNull("Memoized LongUnaryOperator is NULL", memoize);
}