java中修饰方法的一个泛型指定为一个类问题

问题描述

java中修饰方法的一个泛型指定为一个类问题

java中修饰方法的一个泛型指定为一个类,那么这个方法的返回类型肯定就是这个类的对象,那返回的是这个类的子类的对象可以吗?

解决方案

可以的,但是在接收到参数进行处理的时候,是需要注意的。给你举个例子:

 public static void main(String[] args) {
        int int1 = (Integer) getInt();//正确
        int int2 = (Integer) getInt2();//报错  java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        String str = (String) getString();//正确
        Date date = (Date) getDate();//正确

        System.out.println(int1);
        System.out.println(int2);
        System.out.println(str);
        System.out.println(date);
    }

    public static Object getInt(){
        return 1;
    }

    public static Object getString(){
        return "abc";
    }

    public static Object getInt2(){
        return "";
    }

    public static Object getDate(){
        return new Date();
    }

解决方案二:

派生类天然也是这个类型。比如返回object类型,当然你也可以返回int string等。

解决方案三:

可以,不过自动向上转型了。

时间: 2024-10-30 04:28:05

java中修饰方法的一个泛型指定为一个类问题的相关文章

java中除了方法可以使用throws关键词抛出异常外,类可以吗

问题描述 java中除了方法可以使用throws关键词抛出异常外,类可以吗 java中除了方法可以使用throws关键词抛出异常外,类可以吗,可不可以抛来抛去而不处理它 解决方案 方法中如果需要抛出异常,就只能用throws异常的,那么调用这个方法的地方必须处理这个抛出的异常.如果调用了抛出异常的方法,要么使用try-catch处理该异常,要么直接抛给它的上层调用者.最后如果都没有处理,那么运行时就由JVM进行处理,那么程序就会出错了. 解决方案二: 类不可以抛出异常,方法抛出的异常交给调用者处

java中的方法什么时候需要void来修饰

问题描述 java中的方法什么时候需要void来修饰 java中的方法什么时候需要void来修饰 java中的方法什么时候需要void来修饰 java中的方法什么时候需要void来修饰 解决方案 不需要返回值的情况下,使用 void.这是最基本的! 解决方案二: 方法不需要返回值的时候加void 解决方案三: 不需要给调用它的成员提供返回值的时候. 解决方案四: 不需要返回值的情况下,使用 void修饰方法 解决方案五: void 就不是修饰的范畴吧 它是代表该方法的返回值类型 是定义方法必须要

JAVA中static方法的用法实例详解_java

本文实例讲述了JAVA中static方法的用法.分享给大家供大家参考,具体如下: static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区或者方法区内找到他们.因此,static对象可以在它的任何对象创建之前访

JAVA中toString方法的作用

以下是对在JAVA中toString方法的作用进行了详细的分析介绍,需要的朋友可以参考下   因为它是Object里面已经有了的方法,而所有类都是继承Object,所以"所有对象都有这个方法". 它通常只是为了方便输出,比如System.out.println(xx),括号里面的"xx"如果不是String类型的话,就自动调用xx的toString()方法 总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法  回答补充:写这个

java类的问题-关于java中的方法的区别

问题描述 关于java中的方法的区别 我是java菜鸟,想问一个问题关于 public static void main (String [] args){} 和static public void main (String [] args){} 的区别是什么?在jvm中是如何执行的? 解决方案 应该是没区别的吧 你要看区别 先分别编译后 后看看编译后的内容的区别吧 很多代码经过编译后效果是一样的

多线程-JAVA中如何在一个线程里面停掉另一个线程

问题描述 JAVA中如何在一个线程里面停掉另一个线程 JAVA中如何在一个线程里面停掉另一个线程,是在一个线程里面哦 PS:新人第一次问问题,希望大神求教 解决方案 定义一个共享变量在run方法里面 while(start){ } 解决方案二: 所以说,这个问题的答案是:不可以! 虽然的确有那么个方法可以摧毁别人的线程,但很早很早就已经过期了,如果没记错的话我之前也这么玩,而结果是这个过期的方法根本没有作用-- 虽然说办法不是没有,那就是通过改变变量值,它知道自己该死了,就退出循环,走向结束.

java阻塞方法-java中阻塞方法有accept和rievce还有其他什么阻塞方法吗

问题描述 java中阻塞方法有accept和rievce还有其他什么阻塞方法吗 java中阻塞方法有accept和rievce还有其他什么阻塞方法吗 如何判断一个方法是不是阻塞方法呢? 解决方案 涉及到流读取的都阻塞吧? 还有就是线程挂起的sleep和wait方法了.

java中mian方法的参数问题

问题描述 java中mian方法的参数问题 main( String[ ]args)和main(String args[ ]) 有和区别 java中mian方法的参数问题 解决方案 没有区别,两种写法都可以的 解决方案二: main()函数你面的参数就是一个字符串数组,这两种方式你可以参考下java中的数组就知道了,没区别的! 解决方案三: 能包含方法吗?......答案就在这里:java中方法的参数的问题---------------------- 解决方案四: 没有什么区别,都是申明一个字符

封装-C# 中System.Drawing.Region对应Java中什么方法呢。

问题描述 C# 中System.Drawing.Region对应Java中什么方法呢. 需要将C#代码转换为Java,封装接口,System.Drawing.Region(RectangleF rect),System.Drawing.RectangleF(PointF location SizeF size)如何转换为Java呢 解决方案 应该 就是对应java中的画矩形,System.Drawing.Region(RectangleF rect),System.Drawing.Rectang