-6

I have a problem it is not just passing Varargs to function, it is how to use Varargs in recursive function, I need generic function objects(List... args) send the n-1 element back to function until the last object by recursive and check these objects either null or empty. if all objects are both null and empty need to return false else true.

private boolean orObjects(List... args) {

    //all of the objects are null or empty
    if(args.length == 0)
    return false;

    //any of the objects is not null or not empty
    return true: orObjects(args.size(1,lenght)) //args.size(1,lenght) verbal 
}
Samet ÖZTOPRAK
  • 3,112
  • 3
  • 32
  • 33

3 Answers3

2
private boolean orObjects(Xyz... args) {
    if (args.length == 0)
        return false;

    return orObjects(Arrays.copyOfRange(args, 1, args.length));
}

As args is just a Xyz[] you need to make a copy. Hence a List<Xyz> args would be better. Or a Stream<Xyz>.

Joop Eggen
  • 107,315
  • 7
  • 83
  • 138
1
   private boolean checkVarargsIsNotBlank(String... vararg) {
    if (vararg.length == 0)
        return true;
    return StringUtils.isNotBlank(vararg[0]) && checkIsNotBlank(Arrays.copyOfRange(vararg, 1, vararg.length));
}
Ikbel
  • 1,817
  • 1
  • 17
  • 30
0
private boolean isNotEmptyOrNull(List list) {
    return list != null && !list.isEmpty() ? true : false;
}

private boolean orObjects(List... args) {

    if (args.length == 0)
        return false;

    return isNotEmptyOrNull(args[0]) ?
            true : orObjects(Arrays.copyOfRange(args, 1, args.length));

}
Samet ÖZTOPRAK
  • 3,112
  • 3
  • 32
  • 33