如何更改java类泛型类型签名?

时间:2016-03-30 17:08:32

标签: java spring generics

我会直言不讳。这是问题

我有一个班级ClassA

GENERICTYPE

我想要实现的是让TypeB扩展新的TypeB extends TypeA public class ClassB<GENERICTYPE extends TypeB> extends ClassA<GENERICTYPE> { //emtpy }

一种可能的解决方案是

char** read_and_filter(int fd) {
  char buf[MAXLENGTH];
  char **bufs=NULL;
  char ch;
  int j = 0, len = 0, t = 0;
  while (!t && read(fd,&ch,1) == 1) {
    switch (ch) {
    case '\n':
      t = 1;
    case ' ':
      bufs = realloc(bufs, (j+1)*sizeof(char*));
      bufs[j++] = strndup(buf,len);
      memset(buf,0,len);
      len = 0;
      break;
    default:
      buf[len++] = ch;
    }
  }
  bufs[j] = 0;
  return bufs;
}

int main(int argc, char **argv) {
  char **filter;
  int i,fd = open("input.txt",O_RDONLY);
  filter = read_and_filter(fd);
  for(i = 0; filter[i]; i++) {
    printf("%s\n",filter[i]);
    free(filter[i]);
  }
  return 0;
}

但似乎不是正确的方法。

有什么建议吗?

如果它有任何区别,我使用的是Spring 4.

谢谢

尼科斯

1 个答案:

答案 0 :(得分:0)

这是正确的想法,但不完全是你如何指定的:

public class ClassB<T extends TypeB> extends ClassA<T> {

}