Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java泛型中的返回 publictget(int索引){ if(索引>-1&&index-1&&index-1&&index_Java - Fatal编程技术网

Java泛型中的返回 publictget(int索引){ if(索引>-1&&index-1&&index-1&&index

Java泛型中的返回 publictget(int索引){ if(索引>-1&&index-1&&index-1&&index,java,Java,我在最后一行的返回值上遇到了一个问题。在这种情况下,我应该如何返回以及返回什么值?在这种情况下,您始终可以返回null,但这可能是您想要的,也可能不是,这取决于具体情况 有时最好抛出一些异常(NoTouchElementException,IndexOutOfBoundsException…等等)一些可能的选项取决于您认为最合适的选项 返回空值 抛出异常 归还 如果要继续该方法,则需要更改方法的返回类型以及方法中的一些逻辑,即: public T get(int index) {

我在最后一行的返回值上遇到了一个问题。在这种情况下,我应该如何返回以及返回什么值?

在这种情况下,您始终可以返回
null
,但这可能是您想要的,也可能不是,这取决于具体情况


有时最好抛出一些异常(
NoTouchElementException
IndexOutOfBoundsException
…等等)

一些可能的选项取决于您认为最合适的选项

  • 返回空值
  • 抛出异常
  • 归还
  • 如果要继续该方法,则需要更改方法的返回类型以及方法中的一些逻辑,即:

    public T get(int index) {           
           if(index > -1 && index < array.length)
                return array[index];
           else
                System.out.println("Invalid Index");
    
           return 0;    
     }
    
    public可选get(int-index){
    if(索引>-1&&index
    使
    T
    成为一个最多有上限的泛型类型
    Number
    ,然后显式强制转换int数组元素:

    public Optional<T> get(int index) {    
           if(index > -1 && index < array.length)
               return Optional.ofNullable(array[index]);
           else
               System.out.println("Invalid Index");  
    
           return Optional.empty();
    }
    
    publictget(int索引){
    if(索引>-1&&index
    无法返回所需内容的原因是编译器此时不知道类型-必须使用泛型参数对其进行实例化。 当创建泛型类时,您必须遵守约定——当类返回T时,您必须以“ReturnObjectOfTypet”结束方法(或者像其他人所说的那样抛出异常)


    然而,您的案例是一个完美的例子,在这种情况下,应该抛出异常,返回null可能会在将来导致很多问题。

    好的,这是由您决定适当的行为。您可以返回null、从数组返回其他值或引发异常。您可以返回
    null
    是否
    T
    Number
    Integer
    的上限?T是上下文参数,您必须显示它所属的类
    public <T extends Number> T get(int index) {
    
     if (index > -1 && index < array.length)
            return (T) new Integer(array[index]);
     else
            System.out.println("Invalid Index");
     return (T) new Integer(0);
    }