2 hgq0916 hgq0916 于 2016.04.01 21:35 提问

Java泛型问题,空指针问题

程序如下:public class GenericsDemo11{
public static void main(String []agrs){
Info i1=new Info();

if(i1!=null){
        System.out.println("不为null");
    }
    fun(i1);
}
public static void fun(Info<? super String> info){
    System.out.println(info);
}

}
程序调用fun方法时出现空指针,为什么?i1不是已经分配了堆内存吗,为什么结果会出现空指针错误?

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.01 22:16

Info不是string的派生类,所以调用fun的时候强制转换失败,info为null

CSDNXIAON
CSDNXIAON   2016.04.01 21:42

Java空指针问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

caozhy
caozhy   Ds   Rxr 2016.04.01 22:17

晕,看错了,csdn的代码混乱,你的泛型参数都没有显示出来。请你贴出Info类的实现看下。

hgq0916
hgq0916 这个csdn不知道为什么这样,泛型参数不显示,无语
2 年多之前 回复
qq_26431469
qq_26431469   2016.04.05 14:08

Info不是string的派生类, 注意哦

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java数组空指针问题
在java中空指针异常算是一个比较棘手的问题,下面通过一个例子来讲解一下怎么处理空指针,以及出现空指针的问题比如,我们先建好一个Book类,里面包括name属性和bNumber(统计书的总数),并写出get和set方法。再写一个Test类,main方法中用数组保存100本书,并设置书的名称,最后打印书的总数和书的名字。Book类:public class Book { private Strin...
java空指针问题
问题引入:对象未赋值或赋值为空,调用对象的方法报NPE 解决方法:使用对象方法之前对对象做非空判断 编程技巧:1.StringUtils类StringUtils.isEmpty(),StringUtils.isBlank,StringUtils.equals()等等     2.不要过多链式编程     3.try……catch(NPE)     4.contains(),indexOf
Java空指针问题
 有人说”在写程序时应当把已知的字符串等信息写在前面,这样可以减少空指针
java泛型应该注意的问题。
相关代码如下: package test; class Point{ private T x; private T y; private E z; public T getX() { return x; } public void setX(T x) { this.x = x; } public T getY() { return y; } public
浅谈java泛型的类型转换问题
## 浅谈java泛型的类型转换问题 - **先引出问题如下:** 下面代码编译时<1>处不报错,<2>处报错,为何? ``` public class Test { public static <T> void printList(List<T> lists) { @SuppressWarnings("unchecked") List<Object> mLists = (List<Object>)
java中关于泛型的问题
泛型相关问题
java 泛型List擦除问题(解决方案)
java和c#比较,会有一个被C#耻笑的问题,就是java的泛型传入List时会被擦除,书上是这样解释的:代码示例如下:public abstract class AbstractOp implements Operation { @Override public T get(String customKey) { String vStr = CacheUtil.get(getKey(cu
java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除 前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉
Java泛型方法重写问题
java中的泛型是采用类型擦除的方式来实现,也即编译后所有原始类型的泛型类都共享同一份目标代码,例如这里的A<T>编译器编译为A,那么编译器对于引用类中泛型的方法,也即泛型方法进行类型擦除操作时是如何实现的呢?答案是采用最左边类型(当前T的初始具体父类型)来代替。
eclipse遇到java空指针问题
File file[] =new File (&quot;F:\\网易云\\其他格式文件&quot;).listFiles(new FileAccept());使用eclipse遇到下面的报错Exception in thread &quot;main&quot; java.lang.NullPointerException报错空指针,原程序没问题。问题根源在下面语句F:\\网易云\\其他格式文件新建一个程序,重写以上语句,复制到原程序...