题解 | #定义打印方法#

定义打印方法

http://www.nowcoder.com/practice/50b50ae39d65415a9fd70601d711e5af

题目的主要信息:

  • 已知有三个类:First、Second、Third
  • 定义一个打印方法,支持传入任意引用类型的参数(包括上述三个类),并在方法内部打印出对象的字符串形式

具体做法:

因为对于定义的这三个类,返回的类型本身就是字符串类型,而其他系统的定义的类型参数也是如此,因此我们可以直接调用方法:getClass().getName(),它将以字符串的形式返回类型,直接输出即可。

alt

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)O(1),直接调用函数输出,常数时间
  • 空间复杂度:O(1)O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论
在idea中会报错,找不到class是怎么回事
1 回复 分享
发布于 2022-01-23 12:19
能解释一下调用print方法时,括号里面的Class.forName(className).newInstance()是什么意思吗?我不太懂
1 回复 分享
发布于 2022-01-23 11:31
在IDEA中会报错:ClassNotFoundException:First 是为啥???
点赞 回复 分享
发布于 2022-03-04 13:44

相关推荐

12-24 20:49
武汉大学 Java
点赞 评论 收藏
分享
11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务