当前位置: 首页 > 知识库问答 >
问题:

字符串不能转换为T

傅安宁
2023-03-14
/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
      Vehicle car = new  Vehicle<String>();
      System.out.println(car.getLicensePlate());
    }
}



class Vehicle<T extends String> {
     public T getLicensePlate() {
        String y="AB1234";
        return y;
    }
}

结果:

Main.java:22:错误:不兼容的类型:字符串不能转换为T返回Y;其中T是类型变量:T扩展类Vehicle 1错误中声明的字符串

共有1个答案

金承嗣
2023-03-14

首先,string是最后一个类,所以t扩展string没有意义。

其次,即使在泛型类型绑定中使用了非final类而不是string,从返回类型可能扩展X的方法返回类X的实例也是不可能的。

例如,如果将类更改为:

class Vehicle<T extends Animal>
 public T getAnimal() {
    return new Animal();
}
Vehicle<Cat> v = new Vehicle<>();
 类似资料: