[ https://issues.apache.org/jira/browse/FLINK-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15011778#comment-15011778 ]
ASF GitHub Bot commented on FLINK-3002: --------------------------------------- Github user StephanEwen commented on a diff in the pull request: https://github.com/apache/flink/pull/1371#discussion_r45248610 --- Diff: flink-java/src/main/java/org/apache/flink/api/java/typeutils/Either.java --- @@ -0,0 +1,147 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.api.java.typeutils; + +/** + * This type represents a value of one two possible types, Left or Right + * (a disjoint union), inspired by Scala's Either type. + * + * @param <L> the type of Left + * @param <R> the type of Right + */ +public abstract class Either<L, R> { + + /** + * Create a Left value of Either + */ + public static <L, R> Either<L, R> left(L value) { --- End diff -- I think it is better to return the specific type here `public static <L, R> Left<L, R> left(L value)`. More specific types allow people to assign them to more specific variables. > Add an EitherType to the Java API > --------------------------------- > > Key: FLINK-3002 > URL: https://issues.apache.org/jira/browse/FLINK-3002 > Project: Flink > Issue Type: New Feature > Components: Java API > Affects Versions: 0.10.0 > Reporter: Stephan Ewen > Assignee: Vasia Kalavri > Fix For: 1.0.0 > > > Either types are recurring patterns and should be serialized efficiently, so > it makes sense to add them to the core Java API. > Since Java does not have such a type as of Java 8, we would need to add our > own version. > The Scala API handles the Scala Either Type already efficiently. I would not > use the Scala Either Type in the Java API, since we are trying to get the > {{flink-java}} project "Scala free" for people that don't use Scala and o not > want to worry about Scala version matches and mismatches. -- This message was sent by Atlassian JIRA (v6.3.4#6332)