【问题标题】:How to add the 'Any Type' questionmark in JavaPoet?如何在 JavaPoet 中添加“任何类型”问号?
【发布时间】:2015-05-20 23:06:39
【问题描述】:

我正在用 JavaPoet 生成代码。

我想在生成的代码中的某处添加一个具有以下参数的方法。

...
    public B someMethod(final AbstractObjectBuilder<Persoon,?> builder) {
       ...
    }
...

所以我的 JavaPoet 代码应该是这样的

    //This does not compile, since I don't know what to put as last argument (questionmark)
ParameterizedTypeName parameterizedTypeName = ParameterizedTypeName.get(AbstractObjectBuilder.class, propertyType,?);

ParameterSpec parameterSpec = ParameterSpec.builder(parameterizedTypeName, name+"Builder", Modifier.FINAL).build();

MethodSpec modMethod = MethodSpec.methodBuilder(name)
                        .addModifiers(Modifier.PUBLIC)
                        .addParameter(parameterSpec)
                        .returns(TypeVariableName.get("B"));
...

【问题讨论】:

  • 你可以使用&lt;Persoon, ? extends &lt;any_class_name or Object&gt;&gt;

标签: java code-generation javapoet


【解决方案1】:

Foo&lt;?&gt;Foo&lt;? extends Object&gt; 的缩写形式。为此使用WildcardTypeName

【讨论】:

  • 您能举个例子吗?
  • 这个:ParameterizedTypeName.get(ClassName.get(Class.class), WildcardTypeName.subtypeOf(Object.class) 给出一个类>。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 2021-08-06
  • 1970-01-01
  • 2019-08-08
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多