小编Hen*_*sen的帖子

如何将StreamEx解包为"普通的旧Java流"?

StreamEx是一个功能强大的库,但在某些时候我不再需要它的超级大国了.

我怎么能摆脱StreamEx内部开销?这会造成问题吗?

防爆.

public void process(Path path){
    StreamEx.of(Files.lines(path))
        .groupRuns(...)
        //See below 
        .unwrap()
        //
        .map(...)
        .forEach(...)
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream streamex

3
推荐指数
1
解决办法
584
查看次数

Mockito 2在any(Class)方法中的更改

我已经从1.9版更新到Mockito 2.1。

现在我的一些测试失败了。方法似乎有所变化any(Bla.class)。在此测试还不错之前:

when(criteriaBuilder.greaterThanOrEqualTo(any(Expression.class),
     any(Comparable.class)))
    .thenReturn(predicate);
Run Code Online (Sandbox Code Playgroud)

现在表达式any(Expression.class)为空。

我是否需要使用另一种方法使其再次正常工作?我可以使用它,(Expression)any()但对我来说似乎不对。

java mockito

3
推荐指数
1
解决办法
995
查看次数

3
推荐指数
1
解决办法
753
查看次数

使用StreamEx从Stream中删除空的Optionals

我正在寻找一种优雅的方法来Optional使用StreamEx库仅传输非空条目.或者标准库,如果可能的话.

目前我正在使用以下相当冗长的方法:

List<Optional<String>> list = 
   Arrays.asList(Optional.of("A"), Optional.empty(), Optional.of("B"));

List<String> nonEmpty = 
   StreamEx.of(list).filter(Optional::isPresent).map(Optional::get).toList();
Run Code Online (Sandbox Code Playgroud)

我基本上是在寻找像StreamEx这样的nonNull方法,但对于Optional.

java java-8 java-stream streamex

3
推荐指数
1
解决办法
174
查看次数

使用Java 8解析周字符串以进行比较

我想比较几周的字符串表示,例如"01/17"周在"02/17"之前和"52/16"之后.

以下代码抛出一个异常,我猜是因为我的字符串没有暗示每周的确切日期.但是,我不在乎 - 它可能都是星期一或星期四或其他什么:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ww/YY", Locale.GERMANY);
LocalDate date1 = formatter.parse(str1, LocalDate::from);
Run Code Online (Sandbox Code Playgroud)

我需要修改解析器吗?或者解析其他格式?Unfortunatley几周没有像YearMonth这样的对象......

datetime parsing java-8 java-time

2
推荐指数
1
解决办法
192
查看次数

map 和 ImmutableMap 的区别

我在支付网关公司工作,在分析代码时遇到了 ImmuatbleMap 对象。我想知道有关的所有细节。它是什么?它与地图相比有什么优势?核心 java 是否支持 ImmuatbleMap?

java collections dictionary guava

2
推荐指数
1
解决办法
6848
查看次数

Kubernetes。是否可以为用户配置默认名称空间?

是否可以为kubernetes中的用户配置默认名称空间(“默认”以外)?

谢谢。

kubernetes

2
推荐指数
2
解决办法
1093
查看次数

确保List <T>类型中的所有元素都是T.

我想验证所有List<T>的元素类型是什么T.

我可以有一个List<object>包含对象,字符串,整数,产品,供应商等,但在我的情况下,如果List<T>定义为List<object>所有元素必须是对象.

也就是说,我想确保元素的类型是传入泛型类型的确切类型,而不是继承链中的任何其他类型.

例:

public void Foo<T>(List<T> list)
{
    // if not all elements are of type T (not SubClass of T) throw exception

    //...    
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?

.net c# oop generics .net-2.0

1
推荐指数
1
解决办法
166
查看次数

Java泛型:根据输入返回列表

例如,我有A,B,C类,它们都在一个List<Object>(列表来自XML-Parser,我对这部分没有影响).通常我只需要一种类型.所以我写了以下课程:

public class FilterForObject{
public static List<A> extractA(Result r){
  return extractClass(r,A.class);
}
public static List<B> extractB(Result r){
  return  extractClass(r,B.class);
}
public static List<C> extractC(Result r){
  return  extractClass(r,C.class);
}

private static <T> List<T> exctracClass(final Result r,final Class<T> resultClass) {
    List<T> ret = new ArrayList<T>(40);
    for (Object o : r.getAorBorC()) {
        if( o instanceof T){
            ret.add((T)o); // For some reasons this doesn't work
        }
    }
    return ret;
}

}
Run Code Online (Sandbox Code Playgroud)

我遇到了以下警告:

无法对类型参数T执行instanceof检查.请使用其擦除对象,因为将在运行时擦除其他泛型类型信息

但是我没有得到确切的问题,在编译时所有可能的返回类型都是已知的?

java generics

1
推荐指数
1
解决办法
584
查看次数

在Java中声明类

有类似Java的东西:

class A {}
class B {private A a;}
class C {private A a;}
Run Code Online (Sandbox Code Playgroud)

我怎么知道哪个类声明了?

即我想要获得B级或C级

任何想法都表示赞赏.

问候

java class

1
推荐指数
1
解决办法
330
查看次数

如何找到 2 个字符串的字谜

我编写了一个 Java 程序来查找 2 个字符串的 Anagram。

供参考:如果两个字符串使用完全相同的字母书写,忽略空格、标点符号和大写,则它们是字谜词。每个字母在两个字符串中的计数应该相同。例如,Army 和 Mary 是彼此的变位词。

程序:

package practice;

import java.util.ArrayList;
import java.util.List;

public class Anagram_String {

    public static void main(String[] args) {

        String s1="mary";
        String s2="army";
        int k=0;
        List<String> matchedChar= new ArrayList<String>();
        String charmatch="";

        char[] ch1= s1.toLowerCase().toCharArray();
        char[] ch2= s2.toLowerCase().toCharArray();

        if(s1.length()==s2.length())
        {

            for(int i=0;i<s1.length();i++)
            {
                for(int j=0;j<s2.length();j++)
                {
                    if(ch1[i]==ch2[j])
                    {
                        k++;
                        charmatch=String.valueOf(ch1[i]);
                        System.out.println(charmatch);
                        matchedChar.add(charmatch);
                        System.out.println("Arraylist value is "+matchedChar.toString());
                        System.out.println(matchedChar.size());
                    }
                }

                k=0;
            }

            String arrayValue=matchedChar.toString();
            System.out.println("Array value is "+arrayValue);

            if(arrayValue.contains(s2)){

                System.out.println("String 1 and String 2 …
Run Code Online (Sandbox Code Playgroud)

java string anagram

1
推荐指数
1
解决办法
2527
查看次数