解析Java中的隐藏类型参数

jv4diomz  于 2022-11-27  发布在  Java
关注(0)|答案(1)|浏览(144)

请考虑以下代码:

class Scratch<T> {
  class InnerClass<T> {
    public void executeHiddenMethod(){
     //..some code to use Inner (T) type
     T r = null; //declared T from inner T type
     //..some code to use Outer (T) type
     //?? How to use outer T type?
    }
  }

//when trying to invoke the code:
public static void main(String[] args) {
    Scratch<String> scr = new Scratch<>();
    Scratch<String>.InnerClass<Double> d = scr.new InnerClass<>();
    d.executeHiddenMethod();
  }
}
  • 有没有办法将外部类Scratch的隐藏类型参数显示到内部类InnerClass中?
  • 或者,JLS中是否有任何条款禁止在类型参数被隐藏的情况下公开这种情况?
euoag5mw

euoag5mw1#

除非我误解了这个问题,否则您应该能够为外部类和内部类使用不同的类型参数。T用于ScratchS用于InnerClass

class Scratch<T> {
      class InnerClass<S> {
        public void executeHiddenMethod(){
         ...
         S s = null; 
         ...
         T t = null;
        }
      }
}

相关问题