首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用泛型类时无法访问FILEREADER类中的读取函数。有谁能告诉我为什么我不能在这里访问读取函数?

使用泛型类时无法访问FILEREADER类中的读取函数。有谁能告诉我为什么我不能在这里访问读取函数?
EN

Stack Overflow用户
提问于 2021-12-19 16:25:58
回答 1查看 46关注 0票数 0

使用泛型类时无法访问FILEREADER类中的读取函数。有谁能告诉我为什么我不能在这里访问读取函数?

主类:

代码语言:javascript
复制
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;

public class MainIO {
  public static void main(String[] args) throws Exception {
    System.out.println("Inside mainIO class");
    FileReader fr = null;
    GenericInput gio;
    try {
      fr = new FileReader("C:\\Users\\alex\\IdeaProjects\\javaIO\\src\\inputfile.txt");
      gio = new GenericInput(fr);
      gio.readByteData(fr);
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
  }
}

二级:

代码语言:javascript
复制
import java.io.FileReader;
import java.io.InputStream;

public class GenericInput < T > {
  T input;
  public GenericInput(T input) {
    System.out.println("Inside: " + input.getClass().getName());
    this.input = input;
  }
  public void readByteData(T input) throws Exception {
    int c;
    while ((c = input.read()) != -1)
      System.out.print(c + "-");
  }
}

输入文本文件:

代码语言:javascript
复制
pythön

误差

代码语言:javascript
复制
C:\Users\alex\IdeaProjects\javaIO\src\GenericInput.java:14:25
java: cannot find symbol
  symbol:   method read()
  location: variable input of type T
EN

回答 1

Stack Overflow用户

发布于 2021-12-19 16:30:10

由于<T>不受约束,它可以是任何东西--甚至是ObjectInteger,所以不能保证它会有一个read方法。如果您想使用该方法,则需要将T约束到具有这种方法的东西--例如,扩展Reader的东西。

代码语言:javascript
复制
public class GenericInput <T extends Reader> {
// Here ---------------------^
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70413241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档