本文整理了Java中java.util.Optional.orElseGet()
方法的一些代码示例,展示了Optional.orElseGet()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Optional.orElseGet()
方法的具体详情如下:
包路径:java.util.Optional
类名称:Optional
方法名:orElseGet
[英]Return the value if present, otherwise invoke other and return the result of that invocation.
[中]返回值(如果存在),否则调用other并返回该调用的结果。
代码示例来源:origin: prestodb/presto
private static String toQualifedName(Object objectName, Optional<String> columnName)
{
return columnName.map(s -> format("column %s of table %s", s, objectName))
.orElseGet(() -> "table " + objectName);
}
代码示例来源:origin: prestodb/presto
@Override
public OptionalDouble getValueFromAggregationQueryResult(Object value)
{
return Optional.ofNullable(value)
.map(Number.class::cast)
.map(Number::doubleValue)
.map(OptionalDouble::of)
.orElseGet(OptionalDouble::empty);
}
代码示例来源:origin: hs-web/hsweb-framework
@Override
public DictParser getParser(String id, String defaultId) {
return Optional.ofNullable(parserRepo.get(id)).orElseGet(() -> parserRepo.get(defaultId));
}
代码示例来源:origin: spring-projects/spring-framework
private static <T, S extends Publisher<T>> S readWithMessageReaders(
ReactiveHttpInputMessage message, BodyExtractor.Context context, ResolvableType elementType,
Function<HttpMessageReader<T>, S> readerFunction,
Function<UnsupportedMediaTypeException, S> errorFunction,
Supplier<S> emptySupplier) {
if (VOID_TYPE.equals(elementType)) {
return emptySupplier.get();
}
MediaType contentType = Optional.ofNullable(message.getHeaders().getContentType())
.orElse(MediaType.APPLICATION_OCTET_STREAM);
return context.messageReaders().stream()
.filter(reader -> reader.canRead(elementType, contentType))
.findFirst()
.map(BodyExtractors::<T>cast)
.map(readerFunction)
.orElseGet(() -> {
List<MediaType> mediaTypes = context.messageReaders().stream()
.flatMap(reader -> reader.getReadableMediaTypes().stream())
.collect(Collectors.toList());
return errorFunction.apply(
new UnsupportedMediaTypeException(contentType, mediaTypes, elementType));
});
}
代码示例来源:origin: jooby-project/jooby
/**
* Filter residual/external properties from jdbc module. See #1044.
* @param name Property name.
* @return True if this is a valid flyway property.
*/
static boolean isFlywayProperty(String name) {
String setter = "set" + name;
return Stream.of(Flyway.class.getMethods())
.filter(m -> m.getName().equalsIgnoreCase(setter))
.findFirst()
.map(m -> true)
.orElseGet(() -> ImmutableSet.of("driver", "url", "user", "password").contains(name));
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Get the adapter for the given reactive type. Or if a "source" object is
* provided, its actual type is used instead.
* @param reactiveType the reactive type
* (may be {@code null} if a concrete source object is given)
* @param source an instance of the reactive type
* (i.e. to adapt from; may be {@code null} if the reactive type is specified)
*/
@Nullable
public ReactiveAdapter getAdapter(@Nullable Class<?> reactiveType, @Nullable Object source) {
Object sourceToUse = (source instanceof Optional ? ((Optional<?>) source).orElse(null) : source);
Class<?> clazz = (sourceToUse != null ? sourceToUse.getClass() : reactiveType);
if (clazz == null) {
return null;
}
return this.adapters.stream()
.filter(adapter -> adapter.getReactiveType() == clazz)
.findFirst()
.orElseGet(() ->
this.adapters.stream()
.filter(adapter -> adapter.getReactiveType().isAssignableFrom(clazz))
.findFirst()
.orElse(null));
}
代码示例来源:origin: AxonFramework/AxonFramework
@Override
public <T> MessageHandlingMember<T> wrapHandler(MessageHandlingMember<T> original) {
boolean isReplayAllowed = (boolean) original
.annotationAttributes(AllowReplay.class)
.orElseGet(() -> original.unwrap(Member.class)
.map(Member::getDeclaringClass)
.map(c -> AnnotationUtils.findAnnotationAttributes(c, AllowReplay.class)
.orElse(DEFAULT_SETTING))
.orElse(DEFAULT_SETTING)
).get("allowReplay");
if (!isReplayAllowed) {
return new ReplayBlockingMessageHandlingMember<>(original);
}
return original;
}
代码示例来源:origin: hs-web/hsweb-framework
protected T find(Object value) {
return allOptionSupplier.get()
.stream()
.filter(e -> e.eq(value))
.findFirst()
.orElseGet(() -> orElseGet.apply(value));
}
代码示例来源:origin: micronaut-projects/micronaut-core
@Override
public String getHost() {
return serverConfiguration.getHost()
.orElseGet(() -> Optional.ofNullable(System.getenv(Environment.HOSTNAME)).orElse(SocketUtils.LOCALHOST));
}
代码示例来源:origin: neo4j/neo4j
@Nonnull
private String getDefaultProvider( @Nullable String indexName, @Nonnull Config dbConfig )
{
return dbConfig.getRaw( "index." + indexName )
.orElseGet( () -> dbConfig.getRaw( "index" ).orElse( "lucene" ) );
}
代码示例来源:origin: pentaho/pentaho-kettle
/**
* Returns a copy of loggable options with sensitive data stripped.
*/
private MqttConnectOptions loggableOptions() {
MqttConnectOptions loggableOptions = getOptions();
Optional.ofNullable( loggableOptions.getSSLProperties() )
.orElseGet( Properties::new )
.keySet().stream()
.filter( key -> key.toString().toUpperCase().contains( "PASSWORD" ) )
.forEach( key -> loggableOptions.getSSLProperties().put( key, "*****" ) );
return loggableOptions;
}
代码示例来源:origin: AxonFramework/AxonFramework
private String selectProcessingGroupByType(Class<?> type) {
return typeSelectors.stream()
.map(s -> s.select(type))
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst()
.orElseGet(() -> defaultTypeSelector.select(type)
.orElseThrow(IllegalStateException::new));
}
代码示例来源:origin: baomidou/mybatis-plus
private Field getField(Class<?> clazz) {
return Optional.ofNullable(TABLE_FIELD_OF_ENUM_TYPES.get(type)).orElseGet(() -> {
Field field = dealEnumType(clazz).orElseThrow(() -> new IllegalArgumentException("当前[" + type.getName() + "]枚举类未找到标有@EnumValue注解的字段"));
addEnumType(clazz, field);
return field;
});
}
}
代码示例来源:origin: Netflix/conductor
private Integer getSubWorkflowVersion(Map<String, Object> resolvedParams, String subWorkflowName) {
return Optional.ofNullable(resolvedParams.get("version"))
.map(Object::toString)
.map(Integer::parseInt)
.orElseGet(
() -> metadataDAO.getLatest(subWorkflowName)
.map(WorkflowDef::getVersion)
.orElseThrow(() -> {
String reason = String.format("The Task %s defined as a sub-workflow has no workflow definition available ", subWorkflowName);
logger.error(reason);
return new TerminateWorkflowException(reason);
}));
}
}
代码示例来源:origin: prestodb/presto
@Override
public OptionalDouble getValueFromAggregationQueryResult(Object value)
{
return Optional.ofNullable(value)
.map(Number.class::cast)
.map(Number::doubleValue)
.map(OptionalDouble::of)
.orElseGet(OptionalDouble::empty);
}
代码示例来源:origin: spring-projects/spring-framework
private static <P extends Publisher<?>, M extends ReactiveHttpOutputMessage> Mono<Void> writeWithMessageWriters(
M outputMessage, BodyInserter.Context context, P body, ResolvableType bodyType) {
MediaType mediaType = outputMessage.getHeaders().getContentType();
return context.messageWriters().stream()
.filter(messageWriter -> messageWriter.canWrite(bodyType, mediaType))
.findFirst()
.map(BodyInserters::cast)
.map(writer -> write(body, bodyType, mediaType, outputMessage, context, writer))
.orElseGet(() -> Mono.error(unsupportedError(bodyType, context, mediaType)));
}
代码示例来源:origin: baomidou/mybatis-plus
/**
* 反射检查参数类是否启动乐观锁
*
* @param parameterClass 实体类
* @param tableInfo 实体数据库反射信息
* @return ignore
*/
private EntityField getVersionFieldRegular(Class<?> parameterClass, TableInfo tableInfo) {
return Object.class.equals(parameterClass) ? null : ReflectionKit.getFieldList(parameterClass).stream().filter(e -> e.isAnnotationPresent(Version.class)).map(field -> {
field.setAccessible(true);
return new EntityField(field, true, tableInfo.getFieldList().stream().filter(e -> field.getName().equals(e.getProperty())).map(TableFieldInfo::getColumn).findFirst().orElse(null));
}).findFirst().orElseGet(() -> this.getVersionFieldRegular(parameterClass.getSuperclass(), tableInfo));
}
代码示例来源:origin: ehcache/ehcache3
@Override
public String valueType() {
return value().map(CacheEntryType::getValue).orElseGet(() -> extract(source -> JaxbHelper.findDefaultValue(source, "keyType")).orElse(null));
}
代码示例来源:origin: neo4j/neo4j
/**
* @return a configured setting
*/
public Optional<Object> getValue( @Nonnull String key )
{
return configOptions.stream()
.map( it -> it.asConfigValues( params ) )
.flatMap( List::stream )
.filter( it -> it.name().equals( key ) )
.map( ConfigValue::value )
.findFirst()
.orElseGet( Optional::empty );
}
代码示例来源:origin: speedment/speedment
private static String getComputerName() {
final String hostName;
try {
hostName = InetAddress.getLocalHost().getHostName();
if (hostName != null && !hostName.isEmpty()) {
return hostName;
}
} catch (final Exception ex) {
// Ignore exception.
}
return Optional.ofNullable(System.getenv("COMPUTERNAME"))
.orElseGet(() -> Optional.ofNullable(System.getenv("HOSTNAME"))
.orElse("unknown")
);
}
内容来源于网络,如有侵权,请联系作者删除!