Ben*_*lee 0 java variadic-functions
我对Java中的泛型和变量进行了一些研究,但我似乎无法找到如何将它们一起实现为创建具有灵活参数类型和数量的方法(和/或构造函数).例如,假设我想创建一个单一的方法可能需要一个整数数组或一个不固定数量的整数参数.我可以这样创建第一个:
public void example0 (int[] args) { }
Run Code Online (Sandbox Code Playgroud)
和后者一样:
public void example1 (int... args) { }
Run Code Online (Sandbox Code Playgroud)
但是我怎么能把它们组合成一个单一的名字呢?并且,展望未来我如何实现对多个数值类型的支持,例如float?一个例子是一个很好的答案.
更新:
谢谢,但显然我用了一个太简单的例子来表示更大的问题.考虑到任何数量的论点和任何类型,我将如何处理这个问题?所以说:
public void example(int[] args) {}
public void example(string arg0, int[] args) {}
public void example(string arg0, string arg1) {}
...
Run Code Online (Sandbox Code Playgroud)
一个int...参数可以同时接受整数和INT的阵列.您只需要一种方法来处理这两种方法.
public void example (int... args) { }
Run Code Online (Sandbox Code Playgroud)
示例调用:
example(1, 2, 3);
example(new int[] { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)
并且,展望未来我如何实现对多个数值类型的支持,例如float?
你可以尝试使用Number,这是两者的超Integer和Float.但老实说,这是尴尬和低效的,不值得.标准API方法往往只有所有数字类型的重载.
public void example (int... args) { }
public void example (long... args) { }
public void example (float... args) { }
public void example (double... args) { }
Run Code Online (Sandbox Code Playgroud)