Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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:如何访问内部类&x27;她自己的类型_Java - Fatal编程技术网

Java:如何访问内部类&x27;她自己的类型

Java:如何访问内部类&x27;她自己的类型,java,Java,我正在尝试使用数组实现一个基本的符号表 当我尝试实现一个get方法时,其返回类型是在我的内部类中定义的,但java不允许我这样做。H 我怎样才能做到这一点 错误:无法解析符号“键” 公共类ST2{ 项目[]项目; int N; 公共类项目{ 公钥; 公共价值; 公共项(键、值){ this.key=key; 这个值=值; } //其他一些方法。 } 公共ST2(国际容量){ 项目=(项目[])新对象[容量]; } //其他方法 公钥get(Key Key){//此处出错:无法解析符号“K

我正在尝试使用数组实现一个基本的符号表

当我尝试实现一个get方法时,其返回类型是在我的内部类中定义的,但java不允许我这样做。H

我怎样才能做到这一点

错误:无法解析符号“键”

公共类ST2{
项目[]项目;
int N;
公共类项目{
公钥;
公共价值;
公共项(键、值){
this.key=key;
这个值=值;
}
//其他一些方法。
}    
公共ST2(国际容量){
项目=(项目[])新对象[容量];
}
//其他方法
公钥get(Key Key){//此处出错:无法解析符号“Key”
返回项[某些索引].key;
}

您需要在
ST2
上定义
键,而不是在
项上定义

public class ST2<K extends Comparable<K>, V> {

  Item[] items;
  int N;


  public class Item {

    public K key;
    public V value;

    public Item(K key, V value) {
      this.key = key;
      this.value = value;
    }
  }

  public ST2(int capacity) {
    items = (Item[]) new Object[capacity];
  }

  public K get(int index) {
    return items[index].key;
  }
}
公共类ST2{
项目[]项;
int N;
公共类项目{
公钥;
公共价值观;
公共项目(K键,V值){
this.key=key;
这个值=值;
}
}
公共ST2(国际容量){
项目=(项目[])新对象[容量];
}
公共K get(int索引){
返回项目[index].key;
}
}
此外,泛型通常是单字母


我假设您这样做是作为某种练习/作业,因为已经有一个Java类将(可比较的)键映射到值:

您需要在
ST2
上定义
键,而不是在
项上定义

public class ST2<K extends Comparable<K>, V> {

  Item[] items;
  int N;


  public class Item {

    public K key;
    public V value;

    public Item(K key, V value) {
      this.key = key;
      this.value = value;
    }
  }

  public ST2(int capacity) {
    items = (Item[]) new Object[capacity];
  }

  public K get(int index) {
    return items[index].key;
  }
}
公共类ST2{
项目[]项目;
int N;
公共类项目{
公钥;
公共价值观;
公共项目(K键,V值){
this.key=key;
这个值=值;
}
}
公共ST2(国际容量){
项目=(项目[])新对象[容量];
}
公共K get(int索引){
返回项目[index].key;
}
}
此外,泛型通常是单字母


我假设您这样做是作为某种练习/作业,因为已经有一个Java类将(可比较的)键映射到值:

错误消息是什么?如何/在哪里定义键和值?错误消息是什么?如何/在哪里定义键和值?