1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
/* ****************************************************************************
Licensed 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.
See NOTICE file for details.
**************************************************************************** */
package jpype.varargs;
import java.util.Map;
class VarArgs
{
public Object[] rest;
public static Object[] call(Object... args)
{
return args;
}
public static String[] callString(String... args)
{
return args;
}
public static int callString0(String str, String... args)
{
return args.length;
}
public int callString1(String str, String... args)
{
return args.length;
}
public static Integer callOverload(Integer i)
{
return i;
}
public static String[] callOverload(String str, String... rest)
{
return rest;
}
public VarArgs()
{
}
public VarArgs(String s, Object... rest)
{
this.rest = rest;
}
public String[] method(String s, String... rest)
{
return rest;
}
public int conflict1(Object... j)
{
return 1;
}
public int conflict1(Map j)
{
return 2;
}
public int conflict2(Object... j)
{
return 1;
}
public int conflict2(Map j, Map k)
{
return 2;
}
public int conflict3(char... j)
{
return 1;
}
public int conflict3(String j)
{
return 2;
}
// Conflict 4 - overloaded multi-param signature, vararg of identical type
public int conflict4(Object o, double... j)
{
return 1;
}
public int conflict4(Object o, double j)
{
return 2;
}
// Conflict 5 - overloaded single-param signature, vararg of identical type
// NB: pre-patch, conflict4 deterministically generated an ambiguous match error.
// However, conflict5 would arbitrarily pick between these two signatures when
// called with a single variable, resulting in unpredictable failures.
public int conflict5(double... j)
{
return 1;
}
public int conflict5(double j)
{
return 2;
}
}
|