题目的主要信息:
- 已知有三个类:First、Second、Third
- 定义一个打印方法,支持传入任意引用类型的参数(包括上述三个类),并在方法内部打印出对象的字符串形式
具体做法:
因为对于定义的这三个类,返回的类型本身就是字符串类型,而其他系统的定义的类型参数也是如此,因此我们可以直接调用方法:getClass().getName(),它将以字符串的形式返回类型,直接输出即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String className = scanner.next();
// print就是需要你定义的方法
print(Class.forName(className).newInstance());
}
}
public static void print(Object obj){
System.out.println(obj.getClass().getName()); //调用getName函数直接输出
}
}
class First {
public String toString() {
return "First";
}
}
class Second {
public String toString() {
return "Second";
}
}
class Third {
public String toString() {
return "Third";
}
}
复杂度分析:
- 时间复杂度:O(1),直接调用函数输出,常数时间
- 空间复杂度:O(1),无额外空间