我的意思是这样的:
function f(int a) {
}
function f(double a) {
}
function f(string a) {
}
我想创建一个可以使用相同名称(f
)和相同变量名称(a
)调用的函数,但不是相同的类型({{1 },int
等。)
谢谢!
答案 0 :(得分:5)
您正在寻找泛型:
实例方法:
public <T> void f(T a) { // T can be any type
System.out.println(a); // test to see `a` is printed
// Do something..
}
类方法:
public static <T> void f(T a) { // T can be any type
System.out.println(a); // test to see `a` is printed
// Do something..
}
假设这是在main
方法中,您可以像这样调用类方法:
示例1:
int number = 10;
f(number);
示例2:
String str = "hello world";
f(str);
示例3:
char myChar = 'H';
f(myChar);
示例4:
double floatNumber = 10.00;
f(floatNumber);
和任何其他类型。
进一步阅读Java Documentation of Generics。
{{3}}
答案 1 :(得分:3)
Java类可以使用相同名称但不同参数类型的方法,就像您要求的那样。
public class Foo {
public void f(int a){
System.out.println(a);
}
public void f(double a){
System.out.println(a);
}
public void f(String a){
System.out.println(a);
}
public static void main(String[] args) throws InterruptedException{
Foo f = new Foo();
f.f(9.0);
f.f(3);
f.f("Hello world!");
}
}