黑马程序员技术交流社区

标题: 朋友出了个3行代码的思考题,我彻底懵了 [打印本页]

作者: 余明辉    时间: 2012-8-6 21:32
标题: 朋友出了个3行代码的思考题,我彻底懵了
朋友说,a可以为任何类型,只要能打印出if里面那句话,就算对,想了好久想不出来
public class Easy<T> {
        T a;
        public static void main(String[] args) {
                if(a != a) {
                        System.out.println("怎样才能执行到我呢?");
                }
        }
}

作者: 樊占江    时间: 2012-8-6 22:07
用一个叫类型对比的方法(instanceof),是个关键字

作者: 瞿乐    时间: 2012-8-6 22:25
主函数是静态的,T类型的a不是静态的啊。当然不可以访问,只可以通过实例对象访问了。
下面我创建一个实例对象,然后在通过对象访问,这个时候对象Easy的a就是相等了。
T可以为任何类型,也可以打印了if里面了,这是我理解的。
public class Easy<T> {
     T a;
    public static void main(String[] args) {
            Easy e = new Easy();
            if( e.a == e.a) {
                    System.out.println("怎样才能执行到我呢?");
            }
    }
}
作者: 梁昱华    时间: 2012-8-6 23:08
瞿乐 发表于 2012-8-6 22:25
主函数是静态的,T类型的a不是静态的啊。当然不可以访问,只可以通过实例对象访问了。
下面我创建一个实例 ...

你理解错题意了:lol
作者: 瞿乐    时间: 2012-8-6 23:28
- -!!!{:soso_e103:}  那不知道了。。。。。
作者: 余明辉    时间: 2012-8-8 02:24
朋友终于给出答案了
public class Demo1<T> {
        T a;
        public static void main(String[] args) {
                double a = 0.0;
                double b = 0.0;
                a = a/b;
                if(a != a) {
                        System.out.println("想办法执行到我!");
                }
        }
}

11111.jpg (8.34 KB, 下载次数: 20)

11111.jpg

作者: 余明辉    时间: 2012-8-8 02:25
问题已经解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2